请问 Celery 这样的任务定时执行的东西准时吗,会有延迟吗

2015-03-05 21:57:06 +08:00
 9xrtp7r1

假设服务器时间是正确的,并且服务器也不会出现死机 等意外情况,那么如果给Celery添加10000个任务,这10000个任务并非在同一秒执行,而是分部在一天内,那么 这10000个任务都会按时执行吗。 会不会比设定的时间晚几秒,

如果任务数量是10w呢, 100w呢

请大家指点下下

谢谢

3162 次点击
所在节点    Python
7 条回复
Catstyle
2015-03-06 00:12:01 +08:00
任务并发多于worker数基本都会排队
话说比设定时间有偏差--几秒的范围内--什么任务会不能忍受?
binux
2015-03-06 00:32:22 +08:00
除非实时系统,没有什么保证程序能准时执行的。
cevincheung
2015-03-06 00:41:07 +08:00
多机呗
dongweiming
2015-03-06 11:25:11 +08:00
100w级别/天, 让消费能力高到不让队列里面有等待处理的任务还算容易.

但是误差在这里:

1. 你的beat默认间隔是2s.
2. worker loop去队列拿任务的间隔1~10.1s(一般是1-2s, 这个结果一般取决于你的任务执行的繁忙和失败重试的影响)

so. 理论上最大的延迟可以达到12.1s

还是看你的系统的健康程度, 但是说实话....
9xrtp7r1
2015-03-06 14:24:37 +08:00
@Catstyle 非常感谢
9xrtp7r1
2015-03-06 14:24:46 +08:00
9xrtp7r1
2015-03-06 14:25:00 +08:00
@dongweiming 非常感谢您

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

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

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

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

© 2021 V2EX