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. 開始時にSproutcore発行時にエラーが発生する
- 4. 旅客は、この質問に似
- 5. ポイントのPhusion旅客
- 6. 同時の旅客インスタンス数を計算する
- 7. のRails +旅客+ nginxの+ Dokku
- 8. RHELのRuby on Rails(1.9.2)(3.0.9)と旅客(3.0.7)アプリケーションはI'vは、Rubyの上にサービスを提供するために開始するために旅客のインストールで一日のために私の頭を強打されて
- 9. 旅客や国際化
- 10. フレックスアプリケーションの開発時にコンソールにログを出力するには?
- 11. モバイルレスポンシブウェブサイトの開発を始めるには
- 12. 開始時にカーソルオーバー/エンドが連続的に発生する
- 13. 旅客が宝石を探す場所
- 14. 新しいアクティビティの開始時にAndroidアプリケーションエラーが発生する
- 15. 開始時にucrtbase.dllでWindows C++サービスのフォールトが発生する
- 16. 新しいアクティビティの開始時にLogCATErrorが発生する
- 17. サービスファブリック - ドットネットの開始時にFabricExceptionが発生する
- 18. 新しいアクティビティの開始時に例外が発生する
- 19. Dockerfileが自動的に旅客機をRailsで起動する
- 20. シリーズ開始時にPandas DataFrameに行を追加する(開始時公平)
- 21. 開始時にSIGABRT
- 22. VirtualHostNameのは、スイッチの前に旅客2.2.2とRails 2.3
- 23. ページ開始時にタイマーを開始する
- 24. サービス開始時に問題が発生する
- 25. 開始時にWebアプリケーションエラーが発生する
- 26. Linuxカーネルの開発とデバッグを開始するには?
- 27. 旅客+ RVM + Ubuntuの11.04サーバー==問題
- 28. ユニコーンvs旅客スタンドアロンnginxの背後
- 29. 音声通話開始時に何かを始めるには?
- 30. 開始時に最終結果を出力するPython
イベント名は ":starting_worker_process"で、 ":start_worker_process"ではありません – ZX12R
@ ZX12Rコメントごとの固定コード –