###前提・実現したいこと
下記のようなsidekiqの構成でシステムを運用しており、
capistranoできれいにデプロイできる環境を作りたいと考えています。
- バッチサーバが複数ある
- 各バッチサーバで異なる設定ファイルのsidekiqプロセスを起動
- 各設定ファイルでは担当するキューや並列数の設定が異なる
###sidekiq構成例
- バッチサーバ1:QueueA と QueueB を担当
-- QueueAは並列数4
-- QueueBは外部APIをキックする処理で、外部APIの並列制約の関係で並列数は1
- バッチサーバ2:QueueCを担当
-- QueueCの並列数は8
-- QueueCの処理は重いため、QueueA、QueueBとお互いに影響を受けないようにしたい
↑こちらの構成で、設定ファイルは下記の3つです。
- QueueA用の設定:並列数4、バッチサーバ1で稼働
- QueueB用の設定:並列数1、バッチサーバ1で稼働
- QueueC用の設定:並列数4、バッチサーバ2で稼働
↑こちらは例で簡素にしていますが、実際はより複雑化した構成です。
###注意
sidekiqがキューに優先度を持たせられる点は承知していますが、
仕様上、キューの優先度では表現不可と判断しています。
###試したこと
現状では、capistrano-sidekiqを使用しており、下記のように
バッチサーバ1、2用の設定を分けて管理することで、
ある程度のデプロイの自動化を行っています。
cap batch1 deploy cap batch2 deploy
これを、通常どおり、cap production deploy
のようにデプロイできるのが理想です。
イメージとしては、capistrano-sidekiqで各サーバ毎に設定ファイルを多対多の関係で
設定できるようになることです。
このようなケースでキレイにデプロイできるgemや、設定方法などに知見があれば、
ご教授いただければ幸いです。
あなたの回答
tips
プレビュー