用于监视Rails中的Resque队列的实用方法

时间:2012-01-03 04:24:15

标签: ruby-on-rails ruby monitoring resque

我希望在Ruby on Rails应用程序中使用Resque自动启动/重新启动队列。 (在JRuby上运行)

我想确保满足以下条件:

  1. 使用capistrano部署后,工作人员启动
  2. 如果工人因任何原因死亡,工作人员将重新开始
  3. 停止/重新启动过多内存的工作人员可以向我发送电子邮件警报
  4. 是否有当前提供此功能的工具或至少是其中的一部分?如果没有重新启动队列/工作人员的任何内容,我希望至少得到通知,以便我可以手动执行。

2 个答案:

答案 0 :(得分:2)

最简单的方法是使用GodMonit之类的程序来获得#2和#3。对于#1,您可以设置Capistrano脚本以向所有Resque工作人员发送kill -INT,然后监控程序将重新启动它们。

使用kill -INT而不是在Capistrano脚本中手动停止和启动作业的优势在于,您的部署不必等待每个工作程序停止处理其作业以启动它们。这也意味着如果你有一个长时间运行的工作,你将很快得到任何免费工作人员尽快运行新代码。

答案 1 :(得分:1)

我对它并不是特别熟悉,但我相信god gem经常用于流程管理。