Django中使用celery
名词说明:
Django: python的一个使用量较大的框架.
celery: 一个异步任务队列管理工具,也叫做分布式任务队列
需求:
django, celery, django-celery-beat
背景摘要:
最近项目重构时把发送短信独立成一个单独的功能函数,然而函数中存在等待时间以判定短信发送是否成功,所以在即时回复的接口中比如发送验证码的时候,不能直接调用发送短信函数,需要使用异步任务调用,由于结果在函数中已经做了记录,所以不需要返回值
1. 首先需要在项目中配置celery配置
在项目子目录下新建celeryconfig.py文件/或者直接在setting中添加celery配置
# Celery application definition
CELERY_BROKER_URL = 'redis://127.0.0.1:6379'
CELERY_RESULT_BACKEND = 'redis://127.0.0.1:6379'
CELERY_ACCEPT_CONTENT = ['application/json'] # 指定任务接受的内容类型
CELERY_RESULT_SERIALIZER = 'json'
CELERY_TASK_SERIALIZER = 'json'
CELERY_TIMEZONE = 'Asia/Shanghai'
# celery不能用root用户启动的话需要在主配置文件中添加platforms.C_FORCE_ROOT = True
CELERYD_CONCURRENCY # 并发worker数
CELERY_TASK_RESULT_EXPIRES #