2011-02-27 19 views
4

我想確保在Rails 3應用程序初始化或加載時,像Sunspot Solr搜索和delayed_job這樣的特定進程正在運行。當我的Rails應用程序加載時,確保某些進程正在運行

我是一個noob,從我可以告訴,我可以寫一個自定義初始值設定項或使用像上帝或Monit的過程監視框架。

有人可以建議採取這裏的最佳路徑?

回答

1

你可以寫一個檢查初始化,像

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

與初始化方法的問題是,即使如果您的所有必需進程都在啓動時運行,則不能保證在您的應用程序運行的未來幾周或幾個月內,它們會繼續運行

使用監測框架 - 神和monit的是好的解決辦法 - 你可以肯定的是,即使你的流程的一個死了,它會自動重新啓動。當發生這種情況時,你也可以得到通知,所以當問題開始發生時你會及早得到通知。

簡而言之:與任何家庭釀造解決方案相比,監控框架最有可能是更好的解決方案。

相關問題