我想確保在Rails 3應用程序初始化或加載時,像Sunspot Solr搜索和delayed_job這樣的特定進程正在運行。當我的Rails應用程序加載時,確保某些進程正在運行
我是一個noob,從我可以告訴,我可以寫一個自定義初始值設定項或使用像上帝或Monit的過程監視框架。
有人可以建議採取這裏的最佳路徑?
我想確保在Rails 3應用程序初始化或加載時,像Sunspot Solr搜索和delayed_job這樣的特定進程正在運行。當我的Rails應用程序加載時,確保某些進程正在運行
我是一個noob,從我可以告訴,我可以寫一個自定義初始值設定項或使用像上帝或Monit的過程監視框架。
有人可以建議採取這裏的最佳路徑?
如果您正在運行Rails應用程序,God是一個非常好的選擇。如果你不熟悉,Railscasts具有良好的截屏,讓你開始:
你可以寫一個檢查初始化,像
raise ProcessNotRunning::MyProcess if `ps aux | grep 'processname' | grep -v grep | wc -l`.strip.zero?
與初始化方法的問題是,即使如果您的所有必需進程都在啓動時運行,則不能保證在您的應用程序運行的未來幾周或幾個月內,它們會繼續運行。
使用監測框架 - 神和monit的是好的解決辦法 - 你可以肯定的是,即使你的流程的一個死了,它會自動重新啓動。當發生這種情況時,你也可以得到通知,所以當問題開始發生時你會及早得到通知。
簡而言之:與任何家庭釀造解決方案相比,監控框架最有可能是更好的解決方案。