celery 里面有个定时任务的功能,可以定期的把任务推送到队列里面去
我在使用的时候,在网上也查了很多东西,但是还是折腾了两天,后来发现我理解的有问题,在这里记录下:
1.启动celery的定时任务需要配置的项目
CELERYBEAT_SCAHEDULE
'add_every_10_second':{
'task':‘worker.add’这个要跟具体的task名称对应起来
‘schedule’:timedelta(seconds=10)
}
2.启动beat
通过启动beat我们可以实现定期的去发送任务
/usr/bin/python /usr/local/bin/celery beat -A ncelery -l INFO
3.理解上的问题:
我之前理解的有问题,我以为beat进错必须和worker在一台机器上启动,其实没有关系,beat只负责把消息放入队列,可以在另外一台机器上面启动;
我之前理解的以为一次把任务放到队列里面,然后worker定时去执行,但是后来踩坑以后发现不是,是beat不停的把任务定期推送到队列里面去