【问题标题】:Pragmatic ways to monitor Resque queues in Rails在 Rails 中监控 Resque 队列的实用方法
【发布时间】:2012-02-01 05:38:03
【问题描述】:
我希望在我的 Ruby on Rails 应用程序中使用 Resque 自动启动/重新启动队列。 (在 JRuby 上运行)
我想确保满足以下条件:
- 在我使用 capistrano 部署后启动工作器
- 如果工人因任何原因死亡,他们将重新启动
- 消耗过多内存的工作人员会停止/重新启动,并且可以向我发送电子邮件警报
目前是否有提供此功能或至少提供其中一部分功能的工具?如果没有任何东西可以重新启动队列/工作人员,我希望至少得到通知,以便我可以手动执行。
【问题讨论】:
标签:
ruby-on-rails
ruby
monitoring
resque
【解决方案1】:
最简单的方法是使用诸如God 或Monit 之类的程序来获取#2 和#3。对于 #1,您只需设置 Capistrano 脚本以向所有 Resque 工作人员发送kill -INT,然后监控程序将再次启动它们。
使用kill -INT 而不是在 Capistrano 脚本中手动停止和启动作业的优势在于,您的部署不必等待每个工作人员停止处理其作业来重新启动它们。这也意味着,如果你有一个长期运行的工作,你将很快让任何空闲的工作人员尽快在新代码上运行。
【解决方案2】:
我不是特别熟悉它,但我相信god gem 经常用于流程管理。