ruby-on-rails - 删除带有特定参数的 Sidekiq 作业?

标签 ruby-on-rails redis sidekiq

假设在某个时候我排队了一个看起来像这样的工作:

HardWorker.perform(command_id, user_id)

有什么方法可以删除所有与特定 command_id 关联的作业(从 Redis 队列中)?

最佳答案

command_id = 'command id to delete'

queue = Sidekiq::Queue.new('the_queue_name')

queue.each do |job|
  if job.klass == 'HardWorker' && job.args.first == command_id
    job.delete
  end
end

关于ruby-on-rails - 删除带有特定参数的 Sidekiq 作业?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24812914/

相关文章:

ruby-on-rails - RoR ActiveRecord::Base uniq 在尝试 uniq.pluck(:column_name) 时未定义

ruby-on-rails - RubyMine 在 Vagrant 机器上列出的 gem 太少

redis - 我可以安全地将其中一个输入键作为目的地的 SINTERSTORE 吗?

ruby-on-rails - 我可以从 Rails worker 或 controller 创建 sidekiq 队列吗?

ruby - Sidekiq 队列权重限制

ruby-on-rails - sidekiq 进程中的 Rails.cache.read

ruby-on-rails - 测试说没有路由匹配,但它们在浏览器中工作

javascript - 如何在 Rails 中将拖放项目的顺序保存到数据库中?

ruby-on-rails - Sidekiq 找不到 Rails Active Job 的记录

node.js - 在 Redis 中存储对象(nodeJS)有很多变化