【Rails 6.0】Sidekiqの「待機状態」にactive_storage_analysisのジョブが滞るのを解決

個人開発のWebアプリまちかどルートRails 6.0にアップグレード。

以下、そのときの体験メモです。

Sidekiqの「待機状態」に

このアプリでは、画像のアップローダーとしてRailsのActive Storageを使っています。また、バックグラウンドジョブをさばくActive JobのアダプターはSidekiqです。

Rails 6.0にアップグレードしてからというもの、画像をアップロードしたり削除するたびにSidekiqのダッシュボードにある「待機状態」のカウント数が増えていくことに気づきました。その中身を見てみるとactive_storage_analysisactive_storage_purgeというジョブ群でした。

不具合を誘発

以前にまとめた、この機能が動かなくなりました。

【Rails】Active Storage + S3 + Active JobでGoogle Cloud Visionセーフサーチ
https://qiita.com/west2538/items/e94db445e22e6151718d

解決策

どうやらsidekiq.ymlにこれらのジョブを追記する必要があったようです。

:verbose: false  
:concurrency: 5  
:max_retries: 3  

:timeout: 8  

:queues:  
  - [default, 7]  
  - [second, 5]  
  - [active_storage_analysis, 3] # 追記  
  - [active_storage_purge, 1] # 追記  

おかげで「待機状態」でジョブが滞ることなく正常にアプリが稼働するようになりました。