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

我希望确保在我的Rails 3应用程序初始化或加载时,某些进程(如Sunspot Solr search和delayed_job)正在运行。 我有点像菜鸟,据我所知,我可以编写一个自定义初始化程序或使用像God或Monit这样的进程监控框架。 有人可以建议在这里采取最佳途径吗?     
已邀请:
如果您正在运行Rails应用程序,那么上帝是一个非常好的选择。如果您不熟悉,Railscasts有一个很好的截屏视频来帮助您入门: http://railscasts.com/episodes/130-monitoring-with-god     
您可以编写一个初始化程序来检查,例如
raise ProcessNotRunning::MyProcess if `ps aux | grep 'processname' | grep -v grep | wc -l`.strip.zero?
    
初始化方法的问题在于,即使您在启动时运行所有必需的进程,也无法保证它们在接下来的几周或几个月内继续运行您的应用程序。 使用监控框架 - 上帝和Monit都是很好的解决方案 - 您可以确定即使您的某个进程死亡,它也会自动重启。此外,您可以在发生这种情况时收到通知,以便在问题开始发生时及早收到通知。 简而言之:与任何家庭酿造解决方案相比,监控框架很可能是更好的解决方案。     

要回复问题请先登录注册