Celery apply_async被多次调用

时间:2018-12-14 13:19:34

标签: python django celery amazon-sqs

我创建了一个任务

@app.task(bind=True, max_retries=1)
def notify_feedback(self, req_id):
    #some things

我从我的角度调用此任务的时间为1小时,例如

later = datetime.datetime.utcnow() + datetime.timedelta(hours=1)
notify_feedback.apply_async((req_id,), eta=later)

当我检查飞行中的SQS消息时,它有1个待处理计数 一小时后,此notify_feedback被多次呼叫。有人遇到过这种芹菜问题吗?

芹菜-使用4.1.0

1 个答案:

答案 0 :(得分:1)

我也遇到了这样的问题,但是我将任务延迟了超过1个小时。

当我在settings.py中设置此项时,我解决了我的问题。

BROKER_TRANSPORT_OPTIONS = {'visibility_timeout': 86400}

可见性超时定义了在将消息重新传递给另一个工作人员之前等待工作人员确认任务的秒数。

更多详细信息there

相关问题