[英]Does delayed job run as a daemon?
似乎delayed_job是一個用於調度任務的框架(通過mysql db)。
實際處理是通過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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.