Python 芹菜工人闲着几个小时后就停了下来

Python 芹菜工人闲着几个小时后就停了下来,python,flask,rabbitmq,celery,Python,Flask,Rabbitmq,Celery,我有一个使用WSGI的Flask应用程序。对于一些任务,我计划将芹菜与RabbitMQ一起使用。但正如标题所说,我面临一个问题,芹菜任务会运行几分钟,然后在长时间不活动之后,它就会消失 芹菜配置: CELERY_BROKER_URL='amqp://guest:guest@localhost:5672//' BROKER_HEARTBEAT = 10 BROKER_HEARTBEAT_CHECKRATE = 2.0 BROKER_POOL_LIMIT = None 从问题中,我添加了BROK

我有一个使用WSGI的Flask应用程序。对于一些任务,我计划将芹菜与RabbitMQ一起使用。但正如标题所说,我面临一个问题,芹菜任务会运行几分钟,然后在长时间不活动之后,它就会消失

芹菜配置:

CELERY_BROKER_URL='amqp://guest:guest@localhost:5672//'
BROKER_HEARTBEAT = 10 
BROKER_HEARTBEAT_CHECKRATE = 2.0
BROKER_POOL_LIMIT = None
从问题中,我添加了
BROKER\u HEARTBEAT
BROKER\u HEARTBEAT\u CHECKRATE

我在
venv
中运行worker,并使用
cellery-acmeapp.cellery worker&
在后台运行它。在检查状态的前几分钟,它显示一个节点处于联机状态,并给出
OK
响应。但在应用程序空闲几个小时后,当我检查芹菜状态时,它显示
错误:没有节点在时间限制内回复。


我是芹菜新手,现在不知道该怎么办。

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

BROKER_CONNECTION_RETRY = True
BROKER_CONNECTION_MAX_RETRIES = 0
第一行将使其在失败时重试,第二行将禁用重试限制

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

BROKER_CONNECTION_TIMEOUT = 120

希望有帮助

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

BROKER_CONNECTION_RETRY = True
BROKER_CONNECTION_MAX_RETRIES = 0
第一行将使其在失败时重试,第二行将禁用重试限制

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

BROKER_CONNECTION_TIMEOUT = 120

希望有帮助

这是在您的本地计算机上还是在生产服务器上?如果是免费的开发人员帐户,生产服务器可能会关闭。你的经纪人呢?这些连接是保持活动状态还是已断开?您是否收到任何可能诊断您的问题的其他回溯。回溯在生产服务器上。不是免费帐户。我不知道如何检查代理连接,但芹菜工人自己在空闲后死亡。除了状态响应之外,没有其他回溯。这是在本地计算机上还是在生产服务器上?如果是免费的开发人员帐户,生产服务器可能会关闭。你的经纪人呢?这些连接是保持活动状态还是已断开?您是否收到任何可能诊断您的问题的其他回溯。回溯在生产服务器上。不是免费帐户。我不知道如何检查代理连接,但芹菜工人自己在空闲后死亡。除状态响应外,没有其他回溯。