簡體   English   中英

延遲作業是否作為守護進程運行?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM