2013-06-22 103 views
0

這怎麼可能?延遲作業Capistrano任務無需每次重新啓動

我現在使用自帶的delayed_job

Capistrano的食譜這是我有:

# Delayed Job recipes 
require "delayed/recipes" 

set :rails_env, "production" # added for delayed job 

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

我不很瞭解Capistrano的階段,可能的解決方案是設置正確的任務向右相。

更新

每次我部署我得到

executing `delayed_job:restart' 

這是真的需要?有沒有辦法在需要時重新啓動delayed_job?還是總是需要?

+2

我不明白是什麼問題?你想達到什麼目的? –

回答

0

我也不能肯定你在找什麼,但也許一個簡單的

cap delayed_job:stop 

在命令行中會做什麼?您可以在

cap -T 

UPDATE

我認爲這是重新啓動每次部署的時間延遲的在職職工最佳實踐查看所有可用的任務。最後,工作人員會執行您的代碼,並且這種情況在部署之間會發生變化。現在,如果您的工作人員運行的代碼很少發生變化(包括rails啓動過程,環境文件,初始化程序,設置,您使用的模型等),並且您想親自處理這些問題,那麼只需刪除鉤子

after "deploy:stop", "delayed_job:stop" 

從deploy.rb和你的罰款:對DJ的任務仍然會在您的處置,但他們不會部署過程中被觸發。