V2EX 14小时前
[程序员] 关于 Django 使用 celery 定时任务的奇葩现象
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文探讨在使用 django-celery-beat 创建定时任务时,部分任务未按预定crontab规则执行的问题,分析了时区配置的影响,并分享了排查过程和解决方案。

我使用 django-celery-beat 创建了一些定时任务,大概如图,但是很奇怪的是有 3 个任务没有按照预定的 crontab 规则执行,其他都正常。先排除任务本身的问题,以为我试过修改定时任务策略,没有执行的任务可以执行。

首先我说一下我的关键配置:

TIME_ZONE = 'Asia/Shanghai'USE_TZ = TrueCELERY_TIMEZONE = 'Asia/Shanghai'CELERY_ENABLE_UTC = True

也就是启用 UTC 时间,然后本地使用北京时间。

ChatGPT 一直让我排查时区问题,我也照做了,但是一直没解决,毕竟按照上面的现象,如果是时区问题,为什么其他的任务正常?我无法理解这个现象,特别是 9:50 执行的任务,其他 9:35 和 9:40 的都正常。

有人遇到过类似的问题吗?

(另外补充:我发现我把 9:50 的任务改成 9 点和 16 点两个时间都执行,这个任务就正常执行了。。。非常不理解)

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

Django Celery 定时任务 时区问题 crontab
相关文章