sidekiqキューをクリアする
私は永遠に走るこの労働者を持っています。 class Worker include Sidekiq::Worker sidekiq_options queue: "infinity", retry: true def perform(params) # ... self.class.perform_in(30.seconds, params) end end 問題は、このように起動時にワーカーをロードすることです。 config/initializers/load_workers.rb Rails.application.config.after_initialize do if ENV["SIDEKIQ"] == "1" Worker.perform_async({}) end end これを使用してsidekiqを開始しますSIDEKIQ=1 sidekiq --verbose --environment production -C config/sidekiq.yml。 これは、現在実行中のワーカーと再スケジュールされているワーカーの両方で、古いワーカーが停止することを意味します。 起動時に(新しい作品をロードする直前に)これを実行しようとしましたが、うまくいきませんでした。 q = [] q += Sidekiq::RetrySet.new.select { |job| job.klass.match(/Worker/) } q += …