求教 celery beat 调度不准时

2020-11-20 16:43:56 +08:00
 dojo
2020-11-19 08:46:43.804
INFO 139709066150912 [beat.py:271] Scheduler: Sending due task HCM:_periodic_204432 (apps.time.schedule.models.receive_warning_task)
2020-11-19 08:46:43.814
INFO 139709066150912 [scheduler.py:220] apply_async:9:110:12004:<HCMScheduleEntry: HCM:_periodic_204432 apps.time.schedule.models.receive_warning_task(company_id=8, shift_id=2539, section_id=14893, warning_key='begin_warning') <crontab: 25 8 * * * (m/h/d/dM/MY)>
2020-11-20 09:15:40.843
INFO 140618944816128 [beat.py:271] Scheduler: Sending due task HCM:_periodic_204432 (apps.time.schedule.models.receive_warning_task)
2020-11-20 09:15:40.849
INFO 140618944816128 [scheduler.py:220] apply_async:6:525:36598:<HCMScheduleEntry: HCM:_periodic_204432 apps.time.schedule.models.receive_warning_task(company_id=8, shift_id=2539, section_id=14893, warning_key='begin_warning') <crontab: 25 8 * * * (m/h/d/dM/MY)>

各位大佬 我们用 celery 做定时打卡,8:25 提醒打卡,但是最近不是提前就是延后,排查日志看到本该 8:25 调度的任务 beat 在 9:15 或者 8:46 才发出,这有可能是什么引起的。

1111 次点击
所在节点    问与答
5 条回复
zachlhb
2020-11-20 16:47:38 +08:00
时区问题吧,有些地方要把时间转成 utc 时间
dojo
2020-11-20 17:41:25 +08:00
@zachlhb 一周内有几天是正常的,时区我看了下 是 Asia/Shanghai
zachlhb
2020-11-20 21:11:40 +08:00
@dojo 起了几个 worker,有可能是 worker 没有心跳了,任务没有派到 worker 上,然后后面 worker 恢复了才派发任务,可以看看多起几个 worker 看看
jimmyismagic
2020-11-20 21:29:18 +08:00
celery 的定时器确实不怎么准,毕竟是消息式的,有可能队列堵塞住了,worker 设置的太少,被耗时的任务全部占据了,可以看一下任务队列的情况
julyclyde
2020-11-21 19:39:27 +08:00
beat 应该是只负责到时间把任务放到队列里
并不负责执行啊

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/727604

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX