Apache + Passengerの下でRailsアプリケーションを実行していて、いくつかのタスクでbackgroundrbを使用しています。旅客の出発時にbackgroundrbを開始する方法はありますか?たとえば、サーバーを再起動した後、手動で介入することなく、backgroundrbを起動したり、initスクリプトを作成したりすることなく、すべてを再開したいと思います。旅客の出発時にbackgroundrbを開始するには?
0
A
答えて
1
あなたはRails初期化子(config/initializers
)で呼び出しを行うことができます。
、旅客ジョブが起動された場合にのみ、そう何かのように呼び出しをラップ...
if defined? PhusionPassenger
PhusionPassenger.on_event :starting_worker_process do |forked|
if forked
... spawn your backgroundrb here...
end
end
end
するには、このアプローチの問題は、あなたがすべての乗客に新しいプロセスを生成終わるだろうということですワーカープロセス。 backgroundrbが既に実行されているかどうかをチェックする必要があります。
ShogunPandaのコメントhereを見て、Rufus SchedulerとPIDファイルでどのように動作するかを見てください。似たようなことができるはずです。変更は、あなたのbackgroundrbサーバが使用すると、あなたがレースを切るべきであるものは何でもpidファイルに/log/backgroundrb.pid ...
unless FileTest.exist?("#{RAILS_ROOT}/log/backgroundrb.pid")
fork do
exec("#{RAILS_ROOT}/script/backgroundrb", "run")
end
end
:あなたのconfig/environment.rbにファイルにこれを入れて検討することもでき
0
関連する問題
- 1. 旅客とNginxまたは旅客スタンドアロンのみ?
- 2. 旅客が
- 3. 旅客は、この質問に似
- 4. 開始時にSproutcore発行時にエラーが発生する
- 5. 同時の旅客インスタンス数を計算する
- 6. 旅客や国際化
- 7. RHELのRuby on Rails(1.9.2)(3.0.9)と旅客(3.0.7)アプリケーションはI'vは、Rubyの上にサービスを提供するために開始するために旅客のインストールで一日のために私の頭を強打されて
- 8. フレックスアプリケーションの開発時にコンソールにログを出力するには?
- 9. モバイルレスポンシブウェブサイトの開発を始めるには
- 10. 旅客が宝石を探す場所
- 11. 新しいアクティビティの開始時にAndroidアプリケーションエラーが発生する
- 12. 新しいアクティビティの開始時にLogCATErrorが発生する
- 13. 開始時にSIGABRT
- 14. VirtualHostNameのは、スイッチの前に旅客2.2.2とRails 2.3
- 15. ユニコーンvs旅客スタンドアロンnginxの背後
- 16. 旅客+ RVM + Ubuntuの11.04サーバー==問題
- 17. サービス開始時に問題が発生する
- 18. アプリケーションの開始時に書き出すファイルリソースを持つEclipseプロジェクト
- 19. レーシングゲームの開発を開始
- 20. Android/iOSアクセサリ開発を開始するには?
- 21. 正確に時間の開始時にサービスを開始し、その後1時間ごとに繰り返す
- 22. デルファイのプログラムの開始時にポップアップフォームを作成するには?
- 23. どのようにApacheとのPhusion旅客
- 24. iPhone開発開始
- 25. 開始時にノードjs関数を呼び出す
- 26. Windowsサービスの開始時にタスクを実行するには?
- 27. タイマーの完了時にアクティビティを開始するには?
- 28. 旅客で宝石のサーバーを実行する
- 29. モバイル開発を開始する
- 30. Androidゲーム開発を開始する
イベント名は ":starting_worker_process"で、 ":start_worker_process"ではありません – ZX12R
@ ZX12Rコメントごとの固定コード –