我在Django项目中使用了RabbitMQ的最新稳定Celery(4).
RabbitMQ在本地网络内的单独服务器上运行.而Beat定期停止只是将任务发送给工作人员而没有任何错误,只有重新启动它才能解决问题.
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