0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Sidekiq-limit_fetchが仕事しない

Last updated at Posted at 2021-01-03

ruby on railsの開発において並列処理の実行数を管理したかったが、うまくいかなかったのでその原因のお話

Sidekiq-limit_fetchとは

Sidekiq-limit_fetchはsidekiqでの並列処理の実行数を管理するためのgemです。

Gemfile
gem 'sidekiq-limit_fetch'
sidekiq.yml
:queues:
  - queue1
  - queue2

:limits:
  queue1: 2
  queue2: 5

上記の場合、queue1は並列実行可能数が2、queue2は並列実行可能数が5となります。

Sidekiq-limit_fetchが仕事しなかったお話

上記のようにsidekiq-limit_fetchのgemを使用しているにも関わらず並行実行数が指定数を超えることが起きました。

この原因としては他のgemによるlimitの設定関数のオーバーライドでした。

Gemfile
gem 'serverspec'

上記のgemが原因でSidekiq-limit_fetchに記載されたset関数が正常に処理されませんでした。
serverspecはサーバーのテストを自動化するためのgemです。
そのため、serverspecをGemfileから削除することでsidekiq-limit_fetchは仕事をしてくれるようになりました。

しかし、並列実行数が稀に超過する現象は引き続き発生したため、自身でジョブの実行数を管理するコードを書く方が安全だということがわかりました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?