問題は:
ワーカーによって実行されるコードに変更を加えると、新しいコードをプッシュした後も、herokuで実行中のワーカーは以前のワーカーで実行されます。
次に、手動で停止して、resqueを再開する必要があります。しかし、それは間違っていると思います。なぜなら、労働者は何らかの仕事をしている可能性があり、登録が解除されるまでそれを待たなければならないからです。
これは私のresque.rakeです
require 'resque'
require "resque/tasks"
task "resque:setup" => :environment do
ENV['QUEUE'] = '*' if ENV['QUEUE'].blank?
Resque::Worker.all.each {|w| w.unregister_worker}
Resque.after_fork do |job|
ActiveRecord::Base.establish_connection
end
end
task "resque:clean_workers" => :environment do
Resque::Worker.all.each {|w| w.unregister_worker}
end
desc "Alias for resque:work (To run workers on Heroku)"
task "jobs:work" => "resque:work"
Dir["#{Rails.root}/app/jobs/*.rb"].each { |file| require file }
アプリをherokuにプッシュすると、ワーカーが新しいコードで更新される可能性があるかどうかを知りたいです。どうすればそれができますか?
ありがとう!!