我的Rails服务器目前运行完美(Ruby Enterprise + Passenger + Apache)。
还应该在后台运行一些独立的ruby脚本(设置localhost XML-RPC服务器)。 这样做的最佳方式是什么?
提前致谢!
答案 0 :(得分:1)
考虑使用Foreman。它允许您在简单的基于文本的Procfile
中指定后台流程,并使用foreman start
运行它们。
如果您希望使用一个命令启动Web服务器和后台脚本,并且您可以使用Passenger Standalone,那么Procfile
可能如下所示:
web: passenger start
rpc: ruby rpc_server.rb
worker: script/delayed_job
答案 1 :(得分:0)
我尝试过Starling / Workling,发现与delayed_job
相比,它们很难配置并继续运行。在任何情况下,您都需要一个过程监视器,如God或Monit,以确保您选择的解决方案仍在运行。
答案 2 :(得分:0)
评论中的链接另一个问题(由Smar,谢谢):
http://railscasts.com/episodes/127-rake-in-background
似乎对我很好。我不需要Foreman或任何其他工具。
我只需将其添加到Rakefile:
desc "Start some other jobs"
task :start_other_jobs do
system "ruby job1.rb &"
system "ruby job2.rb &"
end
(注意&符号使其作为后台任务运行)
然后通过
启动它rake start_other_jobs
很容易,不是吗? :d