启动时使用rails启动delayed_job

问题描述:

我想启动脚本/ delayed_job启动我的生产时,我将启动我的rails服务器。 无论如何,我能做到吗?启动时使用rails启动delayed_job

编辑::

我已经加入这一行到我的配置/初始化/ delayed_job.rb。

Delayed::Worker.new.start 

但是当我运行我的rails应用程序时,我的延迟作业服务器没有启动。 有没有其他解决方案?

+0

你如何启动你的rails服务器?改变这个sw也会启动dj。 – 2010-06-21 20:05:22

+0

我没有给你。 – 2010-06-21 20:14:30

+0

您是否发现问题所在? – Tonja 2013-03-17 14:33:45

你可以做

Delayed::Worker.new.start 
在初始化目录

(创建一个新的“.RB”文件在那里,它会与你的应用程序启动)

+1

我在config/initializers中的delayed_job.rb文件中添加了这一行。并开始使用Ruby脚本/服务器-e生产服务器进行生产。但它不启动我的delayed_job服务器。 – 2010-06-21 20:14:02

我会建议部署与Capistrano的您的应用程序并定义一个after:deploy hook以在每次部署时启动/重新启动DJ。

我也推荐使用Resive over DelayedJob,因为后者有没有任何原因就会死的倾向,并且通常需要Monit/God监视并重新启动它。

namespace :delayed_job do 
    desc "Start delayed_job process" 
    task :start, :roles => :app do 
    run "cd #{current_path}; script/delayed_job start #{rails_env}" 
    end 

    desc "Stop delayed_job process" 
    task :stop, :roles => :app do 
    run "cd #{current_path}; script/delayed_job stop #{rails_env}" 
    end 

    desc "Restart delayed_job process" 
    task :restart, :roles => :app do 
    run "cd #{current_path}; script/delayed_job restart #{rails_env}" 
    end 
end 

after "deploy:start", "delayed_job:start" 
after "deploy:stop", "delayed_job:stop" 
after "deploy:restart", "delayed_job:restart" 
+0

我已经用capistrano设置了那个东西,但是现在我想要启动delayed_job,当我启动我的rails应用程序服务器或apache时。 – 2010-06-21 20:31:16

你可以设置一个init.d文件,但我会建议monit或god。上帝是红宝石,所以它是熟悉的,但也意味着它泄漏了一点。如果你要运行上帝,我推荐一个cron作业来重新启动它。 This is a VERY good post在服务器上配置监控。

我们走上帝的路线,但如果我们让它再做一遍 - 我们会做monit。