在使用celery 执行定时任务时,发现任务不会执行,schedule设置如下:
经测试,如果去掉hour,则任务每分钟都会执行,说明是hour的问题,那只有是时区的问题了。
遂将hour改为UTC的时间,发现任务可以执行,说明celery使用的是UTC时区,但我设置的时区如下:
CELERY_TIMEZONE='Asia/Shanghai',
CELERY_ENABLE_UTC=True,
说明这两行代码没生效。
查看celery源码,经过我的一番上下求索,并未找到问题。
遂谷歌之,发现这是celery4.1.0的一个bug,附上issue。
最后升级celery至4.2,完美解决问题!