加载我的Rails应用程序时,确保正在运行某些进程

时间:2011-02-27 19:31:43

标签: ruby-on-rails monit god

我想确保在我的Rails 3应用初始化或加载时,正在运行Sunspot Solr search和delayed_job等特定进程。

我有点像菜鸟,据我所知,我可以编写自定义初始化程序或使用像God或Monit这样的流程监控框架。

有人可以建议在这里采取最佳途径吗?

3 个答案:

答案 0 :(得分:1)

如果您正在运行Rails应用程序,那么上帝是一个非常好的选择。如果您不熟悉,Railscasts有一个很好的截屏视频可以帮助您入门:

http://railscasts.com/episodes/130-monitoring-with-god

答案 1 :(得分:1)

您可以编写一个初始化程序来检查,例如

raise ProcessNotRunning::MyProcess if `ps aux | grep 'processname' | grep -v grep | wc -l`.strip.zero?

答案 2 :(得分:1)

初始化方法的问题在于,即使您在启动时运行所有必需的进程,也无法保证在接下来的几周或几个月内运行继续运行

使用监控框架 - 上帝和Monit都是很好的解决方案 - 您可以确定即使您的某个进程死亡,它也会自动重启。此外,当发生这种情况时,您会收到通知,以便在问题开始发生时及早收到通知。

简而言之:与任何家庭酿造解决方案相比,监控框架很可能是更好的解决方案。