Sidekiq列出所有工作

有没有办法获取当前队列中正在运行的所有作业的列表? 基本上,我想知道给定class级的工作是否已经存在,我不想插入我的其他工作。 我见过其他选择,但我想这样做。

我在这里可以看到如何获取队列中的作业列表。

queue = Sidekiq::Queue.new("mailer") queue.each do |job| job.klass # => 'MyWorker' end 

根据我的理解,这将不包括处理/运行工作。 有什么方法可以得到它们?

如果要列出当前正在从控制台运行作业的所有作业,请尝试此操作

 workers = Sidekiq::Workers.new workers.each do |_process_id, _thread_id, work| p work end 

work是哈希。

列出所有队列数据。

 queue = Sidekiq::Queue.all queue.each do |job| p job.klass, job.args, job.jid end 

对于特定队列,将其更改为Sidekiq::Queue.new('queue_name')

同样,您可以使用Sidekiq::ScheduledSet.new获取所有预定作业