我在芹菜中有一个电子邮件任务,从现在开始有10天的时间()。但是,我发现有些人一次会收到5-6个重复的电子邮件。在BROKER_TRANSPORT_OPTIONS设置得太低之前,我遇到过这个问题。现在我在我的设置文件中有这个:
BROKER_TRANSPORT_OPTIONS = {'visibility_timeout': 2592000} #30 days
所以这不应该成为一个问题。我只是想知道是否还有其他任何原因可以导致它。即重新开始芹菜。每次我部署新代码时Celery都会重新启动,并且每周可能会发生5次或更多次,所以这是我唯一能想到的。
有什么想法吗?
感谢。
答案 0 :(得分:1)
如果工作人员/节拍进程未正确停止,则可以进行任务复制。你如何重新启动芹菜工人/击败?检查服务器的僵尸芹菜工人和节拍过程。尝试停止所有芹菜过程,检查芹菜的存在过程并重新开始。毕竟检查ps ax | grep celery
显示新鲜工人和只有一个节拍。
答案 1 :(得分:1)
如果设置CELERY_ACKS_LATE = False
,如果工作人员停止不正确,任务将不会重新启动。在这种情况下,任务标记为在消费后立即确认。请参阅docs。
还要确保您的任务未启用retry
。如果任务中发生任何异常 - 他们可能会使用相同的输入参数重试。
另一种可能的情况 - 您的任务写错了,每次运行选择相同的收件人集。