芹菜工人闲置几个小时后停止

时间:2018-08-29 07:54:22

标签: python flask rabbitmq celery

我有一个使用WSGI的Flask应用。对于一些任务,我打算将Celery与RabbitMQ一起使用。但是正如标题所述,我面临的一个问题是Celery任务运行了几分钟,然后在长时间不活动后便消失了。

Celery配置:

CELERY_BROKER_URL='amqp://guest:guest@localhost:5672//'
BROKER_HEARTBEAT = 10 
BROKER_HEARTBEAT_CHECKRATE = 2.0
BROKER_POOL_LIMIT = None

this问题中,我添加了BROKER_HEARTBEATBROKER_HEARTBEAT_CHECKRATE

我使用venvcelery -A acmeapp.celery worker &内部运行worker,以在后台运行它。并且在检查状态的同时,在最初的几分钟内,它表明一个节点处于联机状态并给出OK响应。但是在应用程序闲置了几个小时之后,当我检查Celery状态时,它显示了Error: No nodes replied within time constraint.

我是Celery的新手,现在不知道该怎么办。

1 个答案:

答案 0 :(得分:0)

您的芹菜工人可能正在尝试重新连接到该应用,直到达到重试限制。如果是这种情况,请在配置文件中设置此选项即可解决该问题。

BROKER_CONNECTION_RETRY = True
BROKER_CONNECTION_MAX_RETRIES = 0

第一行将在失败时重试,第二行将禁用重试限制。

如果该解决方案不够适合您,您还可以使用以下选项为您的应用尝试较高的超时时间(以秒为单位):

BROKER_CONNECTION_TIMEOUT = 120

希望有帮助!