我有一個Rails應用程序在Apache + Passenger下運行,並使用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文件。你應該可以做類似的事情。
0
你可以考慮把這個在你的config/environment.rb文件中:
unless FileTest.exist?("#{RAILS_ROOT}/log/backgroundrb.pid")
fork do
exec("#{RAILS_ROOT}/script/backgroundrb", "run")
end
end
變化/log/backgroundrb.pid到任何你了pidfile服務器backgroundrb使用,你應該去比賽......
相關問題
- 1. 乘客:在啓動時預加載
- 2. shell腳本啓動乘客
- 3. 乘客無法啓動PHUSION
- 4. 如何重新啓動phusion乘客?
- 5. 如何知道乘客滾動重啓何時完成?
- 6. 如何在啓動時啓動「unbound」
- 7. 如何在tomcat啓動時啓動ActiveMQ?
- 8. 如何在啓動時啓動node.js + supervisor?
- 9. 如何在啓動時啓動hadoop?
- 10. 乘客與蝦不會啓動
- 11. 紅寶石乘客不會啓動
- 12. 用戶啓動乘客(使用Nginx)
- 13. 乘客申請不再啓動:Errno :: EPIPE
- 14. 乘客啓動錯誤-e生產
- 15. Apache2無法啓動 - Mac OS X - 乘客
- 16. 乘客和Nginx不會啓動
- 17. Phusion乘客未啓動:「sudo:passenger:command not found」
- 18. 乘客無法啓動80端口上
- 19. 如何在生產環境中啓動乘客?
- 20. 我如何使nginx和乘客在部署後自動重啓
- 21. 如何在鐵軌應用程序中啓動乘客?
- 22. 如何防止backgroundrb啓動相同任務的多個副本?
- 23. 在啓動時啓動delayed_job
- 24. MongoDB在啓動時啓動?
- 25. 當啓動乘客時,在.bash_profile上的權限被拒絕
- 26. 乘客4.0獨立不在rvm下使用jruby時啓動
- 27. 乘客Apache2 CentOS RVM權限在啓動時被拒絕
- 28. 無法在EC2啓動nginx +乘客上啓動Rails服務器。 (Linux的CentOS的)
- 29. 啓動時啓動
- 30. 在啓動/重啓時啓動Resque
事件名稱爲「:starts_worker_process」而非「:start_worker_process」 – ZX12R 2012-06-20 08:05:45
每個@ ZX12R註釋的固定代碼 – 2012-07-02 17:54:56