celery异步任务使用
目录结构
- celery_tasks为主目录
- email、html、sms为各任务文件夹
- tasks.py为各任务目录中的任务,每个里面tasks里面可以定义多个任务
- config.py为配置文件
- main.py主文件
任务
以sms下的tasks为例子
from libs.yuntongxun.sms import CCP
from celery_tasks.main import app
@app.task(name='send_sms_code')
def send_sms_code(mobile,sms_code):
# 发送短信
ccp = CCP()
expries = str(300 // 60)
ccp.send_template_sms(mobile, [sms_code, expries], 1)
@app.task(name='pritn_a')
def pritn_a():
print('aaa')
config.py文件
broker_url = "redis://10.211.55.26/14"
main.py
from celery import Celery
# 为celery使用django配置文件进行设置
import os
if not os.getenv('DJANGO_SETTINGS_MODULE'):
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings.dev'
# 创建celery应用
app = Celery('demo')
# 导入celery配置
app.config_from_object('celery_tasks.config')
# 自动注册celery任务
app.autodiscover_tasks(['celery_tasks.sms','celery_tasks.email','celery_tasks.html'])
# celery -A celery_tasks.main worker -l info # 执行celery指令