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



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

芹菜配置:

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

从这个问题中,我添加了BROKER_HEARTBEATBROKER_HEARTBEAT_CHECKRATE.

我在venv内运行工作线程,celery -A acmeapp.celery worker &在后台运行它。在检查状态时,在最初的几分钟内,它显示一个节点处于联机状态并给出OK响应。但是在应用程序空闲几个小时后,当我检查芹菜状态时,它显示Error: No nodes replied within time constraint.

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

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

BROKER_CONNECTION_RETRY = True
BROKER_CONNECTION_MAX_RETRIES = 0

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

如果该解决方案不适合你,你也可以使用此选项为应用尝试高超时(以秒为单位指定(:

BROKER_CONNECTION_TIMEOUT = 120

希望对您有所帮助!

相关内容

  • 没有找到相关文章

最新更新