【发布时间】:2017-05-09 02:04:34
【问题描述】:
我的大多数 Celery 任务的 ETA 都比 Amazon SQS 定义的最大可见性超时时间长。
芹菜documentation 说:
这会导致 ETA/倒计时/重试任务出现问题 执行超过可见性超时;事实上,如果发生这种情况 将再次执行,并在循环中再次执行。
因此您必须增加可见性超时以匹配 您计划使用的最长 ETA。
同时它还说:
在撰写本文时,AWS 支持的最大可见性超时为 12 小时(43200 秒):
如果我使用 SQS,我应该怎么做才能避免在工作人员中多次执行任务?
【问题讨论】:
-
我假设你使用 acks_late。也许您应该有一些您希望运行时间超过 12 小时的任务才能拥有
acks_late=False。你试过吗?您不必全局禁用 acks_late(配置设置),只需将其放在任务注释中即可。