如何清除Sidekiq中的所有作业?

168

我正在Rails应用中使用Sidekiq执行后台任务。现在作业数量变得更多了,所以我想清除所有的作业。我在控制台中尝试了以下命令:

Sidekiq::Queue.new.clear
但它会报以下错误。
NameError: uninitialized constant Sidekiq::Queue 

我该如何清除 Sidekiq 中的所有任务?


在之前尝试使用 include 'sidekiq' - Benj
@BenjaminSinclaire,它正在给出TypeError:错误的参数类型String(期望Module)。 - Can Can
3
请在执行之前尝试 require 'sidekiq' - Uri Agassi
1
我总是(真的总是)混淆include和require :) - Benj
12个回答

2

1
我意识到Sidekiq.redis { |conn| conn.flushdb }会从redis数据库中删除所有键。有一种更安全的方法可以使用redis-cli清除所有sidekiq队列:
redis-cli keys "*queue:*" | xargs redis-cli del

使用Sidekiq API也可以实现相同的效果(请参见Ravi Prakash Singh回答


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接