安装celery
- pip install -U celery
定义celery包
- main.py 为celery的启动文件,配置如下
from celery import Celery
创建celery实例
celery_app = Celery('项目或者应用名字')
加载celery配置
celery_app.config_from_object('celery_tasks.config')
自动注册celery任务
celery_app.autodiscover_tasks(['celery_tasks.sms'])
*列表中celery_tasks.sms为celery_tasks下新建的任务目录*
- config.py为celery任务队列的数据库配置文件,配置如下
指定消息队列的位置
broker_url = 'redis://IP/7'
*ip为raids数据库所在服务器其IP,7为raids数据库中的7号库*
以异步短信任务为例
- 在celery_tasks下创建需要异步的任务包sms
- 在sms包下创建tasks.py文件,tasks.py文件配置如下
from celery_tasks.sms.yuntongxun.sms import CCP #借用云通讯短信发送平台
from celery_tasks.sms.constans import SMS_CODE_EXPIRE_REDIS #常量
from celery_tasks.main import celery_app
@celery_app.task(name='send_sms_code')
def send_sms_code(mobile, sms_code):
CCP().send_template_sms(mobile, [sms_code, SMS_CODE_EXPIRE_REDIS//60], 1)
- 再在需要发送短信的主业务逻辑中,导入celery_tasks.sms.send_sms_code
from celery_tasks.sms.tasks import send_sms_code
**- 在使用send_sms_code.delay(*args, kwargs)将任务添加到redis数据库队列进行执行
send_sms_code.delay(mobile, sms_code)