celery执行异步任务,延迟任务和定时任务
执行异步任务
执行延迟任务
from datetime import datetime, timedelta
eta = datetime.utcnow() + timedelta(seconds=10)
导入异步任务的函数
函数.apply_async(args=['122345421', 4444], eta=eta)
函数.apply_async(kwargs={'mobile':'1896334234','code':8888},eta=时间对象)
执行定时任务:在app所在的文件下配置
# 1 配置
app.conf.beat_schedule = {
'send_sms': {
'task': 'celery_task.user_task.send_sms',
'schedule': timedelta(seconds=5),
'args': ('1822344343', 8888),
},
'add_course': {
'task': 'celery_task.course_task.add_course',
# 'schedule': crontab(hour=8, day_of_week=1), # 每周一早八点
'schedule': crontab(hour=11, minute=38), # 每天11点35,执行
'args': (),
}
}
# 2 启动beat,启动worker
celery -A 包名 beat -l info
celery -A 包名 worker -l info -P eventlet
详细使用方式>>>>刘sir