网上有没有关于如何用Monit监控delayed_job的例子?
我能找到的所有东西都使用God,但我拒绝使用上帝,因为长时间运行的Ruby进程通常很糟糕。(上帝邮件列表中最新的帖子是什么?God Memory Usage Grows Steadily。)
更新: delayed_job现在提供了基于此问题的sample monit config。
发布于 2009-08-16 23:20:50
这就是我是如何让它工作的。
script/delayed_job
守护进程,你可以和monit一起使用。铁路广播有关于这个版本的delayed_job
(ASCIICasts version)的a good episode。这个脚本还有其他一些很好的特性,比如能够运行多个worker。我不会在这里讨论这一点。./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"
我将其存储在我的资源控制系统中,并在/etc/monit/monitrc
文件中使用include /var/www/app/current/config/monit
指向它。
monit start delayed_job
和monit stop delayed_job
是您想要运行的。我也会在部署时重新加载monit,以获取任何配置文件更改。我遇到的问题:
要运行script/delayed_job
,必须安装
daemons
gem。例如,您必须使用-e production
将Rails环境传递给script/delayed_job
。/usr/bin/ruby
和/usr/bin/gem
与REE版本进行了符号链接。在调试monit时,我发现停止init.d版本并从th命令行运行它很有帮助,这样您就可以得到错误消息。否则,很难弄清楚为什么会出问题。
sudo /etc/init.d/monit stop
sudo monit start delayed_job
希望这能帮助下一个想要用monit监控delayed_job
的人。
发布于 2009-11-12 22:55:31
无论如何,您可以始终使用/usr/bin/env和monit来设置环境。这在当前版本的delayed_job 1.8.4中尤其重要,该版本不推荐使用环境(-e)选项。
check process delayed_job with pidfile /var/app/shared/pids/delayed_job.pid
start program = "/usr/bin/env RAILS_ENV=production /var/app/current/script/delayed_job start"
stop program = "/usr/bin/env RAILS_ENV=production /var/app/current/script/delayed_job stop"
在某些情况下,您可能还需要使用env设置路径。
发布于 2009-08-04 15:44:05
我不知道用Monit,但我已经写了一个couple Munin plugins来监控队列大小和平均作业运行时间。我在那个补丁中对delayed_job所做的更改也可能会让你更容易编写Monit插件,如果你坚持这样做的话。
https://stackoverflow.com/questions/1226302
复制相似问题