2010-06-21 262 views
4

我想啓動腳本/ 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

回答

-1

你可以做

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

(創建一個新的「.RB」文件在那裏,它會與你的應用程序啓動)

+1

我在config/initializers中的delayed_job.rb文件中添加了這一行。並開始使用Ruby腳本/服務器-e生產服務器進行生產。但它不啓動我的delayed_job服務器。 – 2010-06-21 20:14:02

0

我會建議部署與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

0

你可以設置一個init.d文件,但我會建議monit或god。上帝是紅寶石,所以它是熟悉的,但也意味着它泄漏了一點。如果你要運行上帝,我推薦一個cron作業來重新啓動它。 This is a VERY good post在服務器上配置監控。

我們走上帝的路線,但如果我們讓它再做一遍 - 我們會做monit。