网络上是否有关于如何使用 Monit 监控 delayed_job 的示例? ?
我能找到的所有东西都使用 God ,但我拒绝使用上帝,因为在 Ruby 中长时间运行的进程通常很糟糕。 (上帝邮件列表中的最新帖子?God Memory Usage Grows Steadily。)
更新:delayed_job 现在带有 sample monit config基于这个问题。
最佳答案
下面是我如何让它工作的。
- 使用collectiveidea fork of delayed_job除了积极维护之外,这个版本还有一个不错的
script/delayed_job
可以与 monit 一起使用的守护进程。 Railscasts 有 a good episode关于这个版本的delayed_job
(ASCIICasts version)。该脚本还有一些其他不错的功能,例如运行多个工作程序的能力。我不在这里介绍。 - 安装监视器。我是从源代码安装的,因为 Ubuntu 的版本太过时了。我关注了these instructions获取 Ubuntu 软件包附带的标准 init.d 脚本。我还需要配置
./configure --sysconfdir=/etc/monit
所以选择了标准的 Ubuntu 配置目录。 编写监控脚本。这是我想出的:
check process delayed_job with pidfile /var/www/app/shared/pids/delayed_job.pid
start program = "/var/www/app/current/script/delayed_job -e production start"
stop program = "/var/www/app/current/script/delayed_job -e production stop"
我将它存储在我的 soucre 控制系统中并用
include /var/www/app/current/config/monit
指向它在/etc/monit/monitrc
文件。- 配置监视器。 These instructions充满广告,但其他方面还可以。
- 为 capistrano 编写一个停止和启动的任务。
monit start delayed_job
和monit stop delayed_job
是你想要运行的。我还在部署时重新加载监视器以获取任何配置文件更改。
我遇到的问题:
-
daemons
必须为script/delayed_job
安装 gem运行。 - 您必须将 Rails 环境传递给
script/delayed_job
与-e production
(例如)。这记录在自述文件中,但未记录在脚本的帮助输出中。 - 我使用 Ruby Enterprise Edition,所以我需要获取 monit 才能开始使用该 Ruby 副本。因途sudo handles the PATH在 Ubuntu 中,我结束了符号链接(symbolic link)
/usr/bin/ruby
和/usr/bin/gem
到 REE 版本。
在调试 monit 时,我发现停止 init.d 版本并从 th 命令行运行它会有所帮助,因此您可以获得错误消息。否则很难弄清楚为什么会出错。
sudo /etc/init.d/monit stop
sudo monit start delayed_job
希望这有助于下一个想要监控的人 delayed_job
与监视器。
关于ruby-on-rails - 如何用monit监控delayed_job,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1226302/