我在芹菜中有一个电子邮件任务,从现在起有10天的预计到达时间()。然而,我发现有些人一次会收到5-6封重复的电子邮件。我以前在BROKER_TRANSPORT_OPTIONS设置得太低的情况下遇到过这个问题。现在,我的设置文件中有以下内容:
BROKER_TRANSPORT_OPTIONS = {'visibility_timeout': 2592000} #30 days所以这应该不再是问题了。我只是想知道有没有其他原因会导致这种情况。即重新启动芹菜。每次我部署新代码时,Celery都会重启,而这种情况一周可能会发生5次或更多,所以这是我唯一能想到的事情。
有什么想法吗?
谢谢。
发布于 2016-03-09 16:34:11
如果工作进程/节拍进程未正确停止,则可能会复制任务。如何重启芹菜工人/节拍?检查服务器中是否有僵尸芹菜工人和节拍进程。尝试停止所有芹菜进程,检查不存在芹菜进程,然后重新启动。毕竟,检查ps ax | grep celery是否显示了新的工作人员,并且只显示了一次节拍。
发布于 2016-03-10 17:34:09
如果设置了CELERY_ACKS_LATE = False,任务将不会在不正确的worker停止的情况下重新启动。在这种情况下,任务在使用后立即标记为已确认。参见docs。
还要确保您的任务没有启用retry。如果任务内部发生任何异常,它们可能会使用相同的输入参数重试。
另一种可能的情况是,您的任务写错了,并且每次运行都选择相同的收件人集合。
https://stackoverflow.com/questions/35877281
复制相似问题