gpt4 book ai didi

ruby - 如何从 sidekiq 队列中删除特定类别的作业?

转载 作者:IT王子 更新时间:2023-10-29 06:03:16 24 4
gpt4 key购买 nike

我不小心在 Sidekiq 中加入了一堆作业。我不想删除我的整个 Redis 存储(并将所有 Sidekiq 数据和排队作业重置为零)但我想删除所有可以由给定类识别的排队作业。我该怎么做?

最佳答案

这些答案很有帮助,但没有回答我最初的问题。这些解决方案可能已过时。

您必须访问作业的参数并在循环范围内获取它的实际作业类。我尝试了上面的方法,但它没有按预期工作,因为 job.klass 没有返回您期望的结果。

这是它目前在终端中返回的内容:

queue.each do |job|
puts job.klass
end

ActiveJob::QueueAdapters::SidekiqAdapter::JobWrapper
=> nil

所以我的解决方案是像这样深入研究工作的论点:

queue = Sidekiq::Queue.new("job_queue_name")

queue.each do |job|
puts job.args.first['job_class']
job.delete if job.args.first['job_class'] == "Things::DoesThatThingJob"
end

我敢肯定有一种方法可以更优雅地编写它(也许有一个选择?)但它是可读的。希望我能够帮助像我一样正在寻找类似东西的其他人。

关于ruby - 如何从 sidekiq 队列中删除特定类别的作业?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23138826/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com