我正试图弄清楚当我的django项目出于某种原因离线时如何处理芹菜。
我在文档中发现了worker-offline事件,所以我猜我可以以某种方式捕获此事件,当芹菜离线并通过电子邮件通知我的芹菜工作者已关闭。
我的问题是如何实现此行为?有没有例子或Django应用程序?这是我应该如何处理这些情况吗?
答案 0 :(得分:2)
在我的生产设置中,我使用supervisor来守护和控制芹菜工人。您可以在系统上运行脚本,监控管理员控制状态(在state of the process进入FATAL
状态时随时触发警报)。
假设您的工作人员不断在日志文件中吐出文本,您可以设置日志新鲜度检查。如果您检测到日志尚未更新X秒/分钟,则会触发警报。
还有Celery Flower,这是一个专为远程监控和远程管理Celery而设计的系统。我没有在生产中使用它,所以我无法判断它是否符合您的特定需求。
答案 1 :(得分:2)
您可以使用实时处理来处理事件,编写消费者并在事件发生时宣布,可以在Monitoring and Management Guide中找到示例,使用worker-offline事件替换任务失败事件并编写您自己的事件处理您捕获的事件的处理程序。
答案 2 :(得分:1)
我最终使用REST API创建了这个Django可重用应用程序,以便从外部服务或机器监视我的芹菜工作者: https://github.com/psychok7/django-celery-inspect