如何设置芹菜生产者发送任务超时

时间:2019-06-28 10:23:16

标签: python rabbitmq celery

我尝试了 broker_connection_timeout 设置,但似乎不是我所期望的。文档here表示:

  

“代理连接超时仅适用于尝试执行以下操作的工作者   连接到代理。它不适用于发送任务的生产者,   有关如何为此设置超时的信息,请参见 broker_transport_options   情况。”

但是直到现在,我仍然找不到RabbitMQ的正确 broker_transport_options 来设置send_task的超时时间。请帮忙,谢谢!

2 个答案:

答案 0 :(得分:0)

它应该起作用...唯一不起作用的情况(这是设计使然)是使用gevent。 -这是有记录的行为。

假设您使用文件celeryconfig.py来配置Celery(通过使用config_from_object(yourpackage.celeryconfig)

它应该具有以下内容:

broker_transport_options = {"fanout_prefix": True,
                            "fanout_patterns": True,
                            "visibility_timeout": 86400,
                            "broker_connection_timeout", 10.0}

答案 1 :(得分:0)

尝试此配置

BROKER_TRANSPORT_OPTIONS = {“ max_retries”:3,“ interval_start”:0,“ interval_step”:0.2,“ interval_max”:0.5}

https://github.com/celery/celery/issues/4627#issuecomment-396907957