本来已经从定时任务的坑中爬出来了。
结果作死早晨,觉得crontab类型的任务可能后面更有用,于是开始测试。
没相到,这个坑浪费了3个小时。
环境是这样的
celery 4.1.0
django-celery-beat 1.1
django 1.11.3
问题是
celery -A proj worker -B -l info 启动celery后
periodic任务可以正常执行,crontab任务却不出现。
搜索了网上资料,看到有的说是celery版本bug,然后又切换了4.0的几个版本,依旧失败。
重新调整timezone和utc也不见效果。
怎么尝试都不见效果,一度非常绝望。吃完午饭,最后决定暂时放弃。
于是决定用linux的cron来进行任务调度。
此时,我便把periodic的任务全部disabled。
然后开始着手cron任务编写了。
刚写了没几句,神奇的事情发生了。celery的crontab任务居然开始执行了。。。
还不清楚原因,真怪,把periodic任务去掉以后,crontab任务就正常了。
4 条评论
dsphoebe · 2018-03-19 10:11 上午
所以,博主现在找到原因了吗?
Wally · 2018-03-22 9:12 下午
后来找到了,忘了更。是celery那个版本的一个bug。定时任务crontab在有另一个periodic任务时,不执行。
robinjia · 2018-03-21 8:07 下午
这是Celery的一个bug, 解决办法查看https://github.com/celery/django-celery-beat/issues/57#issuecomment-372083445
aqiu · 2021-08-27 5:01 下午
原来用的是UTC时间,W T F