清除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 …