celery 使用总结

1、推荐查看链接

        celery详解

        本人借鉴上面链接,成功配置好celery异步任务,感觉一些点总结的还算可以

2、个人celery配置config

# -*- coding: utf-8 -*-

from kombu import Queue, Exchange

# 设置Broker和backend
# BROKER_URL = 'redis://ip:6379/1'             # 将数据存放到redis1数据库,redis默认有16个数据库
# CELERY_RESULT_BACKEND = 'redis://ip:6379/1'

# 都存放到rabbitmq的好处就是,不用定期删除redis中的数据
BROKER_URL = 'amqp://mq_name:mq_passwd@ip:5672'
CELERY_RESULT_BACKEND = 'amqp://mq_name:mq_passwd@ip:5672'


CELERY_TASK_SERIALIZER = 'json'              # 任务序列化和反序列化使用json
CELERY_RESULT_SERIALIZER = 'json'            # 结果序列化为json
CELERY_ACCEPT_CONTENT = ['json']
CELERY_TIMEZONE = 'Asia/Shanghai'
CELERY_ENABLE_UTC = True

CELERY_TASK_RESULT_EXPIRES = 60 * 60 * 24  # 后端存储任务超过一天,则自动清理数据,单位为秒
CELERYD_MAX_TASKS_PER_CHILD = 1000           # 每个worker最多执行1000个任务就会被销毁,可防止内存泄露


CELERYD_PREFETCH_MULTIPLIER = 2

CELERY_QUEUES = (
    Queue('default', Exchange('default'), routing_key='default'),
    Queue('process', Exchange('process'), routing_key='web', consumer_arguments={'x-priority': 0}),
)


CELERY_DEFAULT_EXCHANGE = 'tasks'            # 默认的交换机名字为tasks
CELERY_DEFAULT_EXCHANGE_TYPE = 'topic'       # 默认的交换类型是topic
CELERY_DEFAULT_ROUTING_KEY = 'task.default'  # 默认的路由键是task.default,这个路由键符合上面的default队列

# 配置某个函数对应执行queue中值为route_key的数据
CELERY_ROUTES = {
    "project.tasks.get_haha": {
        "queue": "process",
        "routing_key": "web",
    }
}

3、个人配置celery.py

# -*- coding: utf-8 -*-

from __future__ import absolute_import, unicode_literals
from celery import Celery,platforms
import sys

reload(sys)
sys.setdefaultencoding('utf8')


app = Celery("project", include=['project.tasks'])
app.config_from_object('project.config')
platforms.C_FORCE_ROOT = True


if __name__ == '__main__':
    app.start()

4、项目目录树

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值