はじめに
sidekiqでの処理に不具合があり大量にキューが溜まり続けてしまった
原因を突き止めて改修はしたもののそのまま改修をリリースしてしまうと過去のキューが捌かれてしまう
過去分は全部捨ててしまいたかったが管理画面から「kill」「削除」しようとしてもできなかったので何とかしたかった
対応
以下記事の対応をすれば画面からもキューの削除ができるらしい
https://qiita.com/shouta-dev/items/7d56b8424cf0a0458657
試してはいない
今回はコマンドをサーバで直接叩いてキューを消しました
コマンド
以下記事を参考にしました
https://qiita.com/gabu/items/cfb0044b1485a649510e
bundle exec rails c
# rails console内にて
Sidekiq::RetrySet.new.each {|job|
Sidekiq::RetrySet.new.find_job(job.jid).delete
}
1回の実行では何故か全ては消えなかったので複数回実行し全て削除できました
追記
後からみたらなんかすごく無駄なことをしていることに気付いてしまいました
bundle exec rails c
# rails console内にて
Sidekiq::RetrySet.new.each {|job|
job.delete
}
これでいいですね…
おわりに
sidekiq意外と扱いが面倒くさい…
次同様の対応をしなければならなくなったら根本対応を検討する