我正在將一個應用程序運行到生產服務器,需要使用DelayedJob執行後臺任務。這些任務需要很長時間才能執行。Rails,Capistrano和DelayedJob:使用活動任務進行部署
我deploy.rb有這樣的事情:
desc "Start workers"
task :start_workers do
run "cd #{release_path} && RAILS_ENV=production script/delayed_job -n 2 start"
end
desc "Stop workers"
task :stop_workers do
run "cd #{current_path} && RAILS_ENV=production script/delayed_job stop"
end
before "deploy", "stop_workers"
after "deploy:start", "start_workers"
現在,讓我們假設有一個後臺作業。我需要更新應用程序。運行部署將導致延遲的作業停止並且任務將被中斷。
如何在不停止後臺作業的情況下部署?