2
似乎delayed_job是一個調度任務的框架(通過mysql數據庫)。延遲作業是否作爲守護進程運行?
實際的處理是通過ruby完成的,並且該進程不作爲deamon正確運行?
即它是由我們以某種方式使紅寶石火災通過cron工作或?
似乎delayed_job是一個調度任務的框架(通過mysql數據庫)。延遲作業是否作爲守護進程運行?
實際的處理是通過ruby完成的,並且該進程不作爲deamon正確運行?
即它是由我們以某種方式使紅寶石火災通過cron工作或?
延遲作業作爲一個進程運行,甚至能夠運行多個工人。
這些進程中的每一個都會完全加載您的rails應用程序 - 在許多情況下這可能不太理想。
你可以開始延遲工作:
RAILS_ENV=production ruby script/delayed_job start -n 3
在我自己的項目中,我使用bluepill,以確保任何工人那一聲重新啓動:
workers = 5
app_name = "my_app"
Bluepill.application("#{app_name}_delayed_job", :log_file => "#{app_home}/shared/log/bluepill.log") do |app|
(0...workers).each do |i|
app.process("delayed_job.#{i}") do |process|
process.working_dir = "#{app_home}/current"
process.start_grace_time = 10.seconds
process.stop_grace_time = 10.seconds
process.restart_grace_time = 10.seconds
process.start_command = "cd #{app_home}/current && RAILS_ENV=production ruby script/delayed_job start -i #{i}"
process.stop_command = "cd #{app_home}/current && RAILS_ENV=production ruby script/delayed_job stop -i #{i}"
process.pid_file = "#{app_home}/shared/pids/delayed_job.#{i}.pid"
process.uid = app_name # I install my applications under a user of the same name
process.gid = app_name
end
end
所以你怎麼跑在延遲工作服務器?你是否必須手動啓動過程? – Blankman 2011-04-06 03:26:18
在命令行執行此操作:'ruby script/delayed_job start' – sizzle 2012-06-15 15:54:18