芹菜节拍有时会停止工作

Celery beat sometimes stops working

我在我的 Django 项目中使用最新的稳定版 Celery (4) 和 RabbitMQ。

RabbitMQ 运行 在本地网络中的单独服务器上。并且 beat 周期性地停止向 worker 发送任务,没有任何错误,只有重新启动它才能解决问题。

worker 中没有异常(已在日志中检查并且我正在使用 Sentry 捕获异常)。它只是停止发送任务。

服务配置:

[Unit]
Description=*** Celery Beat
After=network.target

[Service]
User=***
Group=***
WorkingDirectory=/opt/***/web/
Environment="PATH=/opt/***/bin"
ExecStart=/opt/***/bin/celery -A *** beat --max-interval 30

[Install]
WantedBy=multi-user.target

可以解决这个问题吗?或者有什么好的选择吗? (Cron 似乎不是最佳解决方案)。

您的描述听起来很像这个未解决的错误:https://github.com/celery/celery/issues/3409

那里有很多细节,但高级错误描述是,如果与 RabbitMQ 的连接丢失,则无法重新获得连接。

不幸的是,我看不到任何人肯定已经解决了这个问题。

您可以使用以下方法开始调试:

ExecStart=/opt/***/bin/celery -A *** beat --loglevel DEBUG --max-interval 30