sidekiq 删除相关worker

Sidekiq::Queue.new('default').select do |job|
    job.klass == 'WorkerClass' && job.args[0]['xxx'] == "25471"
end.each(&:delete)


Sidekiq::RetrySet.new.select do |job|
    job.klass == 'WorkerClass' && job.args[0]['xxx'] == "25471"
end.each(&:delete)

Sidekiq::RetrySet.new.select do |job|
    job.klass ==  'WorkerClass' && job.args[0] == 19911
end.each(&:delete)

 删除重复workruby

Sidekiq::Queue.new('default').select do |job|
    job.klass == 'WorkerClass'
end.each_with_object(Hash.new { 0 }) { |w, hash| hash[w.args['xxx']] += 1 }.delete_if { |key, value| value == 1 }

 查找执行中的workeride

Sidekiq::Workers.new.select do |_process_id, _thread_id, work|
      work['payload']['class'] = 'WorkerClass' &&
                                 work['payload']['args'][0]['xxx'].to_s == 'xxx'
end
相关文章
相关标签/搜索