Rails 3 アプリの初期化または読み込み時に、Sunspot Solr search やdelayed_job などの特定のプロセスが実行されていることを確認したいと考えています。
私はやや初心者ですが、私が知る限り、カスタム初期化子を作成したり、God や Monit などのプロセス監視フレームワークを使用したりできます。
誰かがここでたどる最適な道を提案できますか?
Rails 3 アプリの初期化または読み込み時に、Sunspot Solr search やdelayed_job などの特定のプロセスが実行されていることを確認したいと考えています。
私はやや初心者ですが、私が知る限り、カスタム初期化子を作成したり、God や Monit などのプロセス監視フレームワークを使用したりできます。
誰かがここでたどる最適な道を提案できますか?
次のようなチェックを行うイニシャライザを作成できます。
raise ProcessNotRunning::MyProcess if `ps aux | grep 'processname' | grep -v grep | wc -l`.strip.zero?
Rails アプリケーションを実行している場合、God は非常に優れたオプションです。慣れていない場合は、Railscasts のスクリーンキャストを参考にしてください。
イニシャライザ アプローチの問題は、必要なすべてのプロセスが起動時に実行されていたとしても、アプリケーションが実行されている次の数週間または数か月間実行し続ける保証がないことです。
監視フレームワークを使用すると (God と Monit はどちらも優れたソリューションです)、プロセスの 1 つが停止した場合でも、自動的に再起動されることを確認できます。また、それが発生したときに通知を受け取ることができるため、問題が発生し始めたときに早期に通知を受け取ることができます。
一言で言えば、監視フレームワークは、自作のソリューションよりも優れたソリューションである可能性が高いです。