本来已经从定时任务的坑中爬出来了。

结果作死早晨,觉得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

发表回复

Avatar placeholder

您的电子邮箱地址不会被公开。