概述:Celery是基于Python开发的分布式异步消息队列,通过Celery可以轻松的实现任务的异步处理,和定时任务。
Celery架构四大部分:
broker:消息中间件,是任务队列本身(常用的有redis、rabbitmq等)
backend:结果存储
workor:任务执行者
task:需执行的任务
应用:
异步调用:那些用户不关心的但是又存在在我们API里面的操作 我们就可以用异步调用的方式来优化(发送邮件 或者上传头像)
定时任务:
定期去统计日志,数据备份,或者其他的统计任务
使用:上文中有提到,是Celery+redis 配合使用
补充定时任务:
settings文件配置
在settings.py文件添加
CELERYBEAT_SCHEDULE = {
'schedule-test': {
'task': 'app的名字.tasks.hello_celery',
'schedule': timedelta(seconds=3),
'args': (2,)
},
}
计划任务时间:
from celery.schedules import crontab
crontab(minute=u'00', hour=u'11',day_of_week='mon,tue,wed,thu,sun')
示例如下:
'every-week-three-and-four-run-get_data_with_param':{
'task': 'APP的名字.tasks.get_data_with_param',
'schedule': crontab(day_of_week="3, 4"),
'args':(4, )
}