結論
sidekiq-limit_fetch
を使う。
背景
実行に結構な時間がかかるジョブがあって、ただ、それは同時実行されては困るジョブだったので、並列実行数を制限したかった(並列実行数を 1 にしたかった)ところ、デフォルトでは指定できないとのことなので gem 探しをしました。
具体例
公式ドキュメントのとおりです。並列実行数を制限したいキューの名前を指定して Sidekiq::Queue['my_queue'].limit
というメソッドで実行数を設定すればよいだけです*1。
class MyHardWorker include Sidekiq::Worker sidekiq_options queue: :my_queue Sidekiq::Queue['my_queue'].limit = 1 def perform # 実行する内容 end end
*1:sidekiq.yml に書く方法もあります