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?

Sidekiq と Solid Queueの導入比較をした

Last updated at Posted at 2025-04-18

はじめに

古いPHPアプリケーションシステムから新しいRailsアプリケーションにリアーキテクチャーをしている。旧システムで稼働している独自のバッチ処理を、Railsアプリケーションに移植をしたいと考えています。

Rails環境での非同期処理として Sidekiq を候補に考えましたが、Kaigi on Rails 2024で発表されていたSidekiq vs Solid Queueを思い出し、Solid Queueアリなのでは?!と思い、再度検討を行います。

前提

まず前提となる環境についてです。

  • Rails 8
    • APIモード
  • MySQL 8
  • Ruby 3.4.2

要件

  • バッチ処理15個、非同期処理を3個を移植したい
  • バッチ処理は決められた時刻に定期実行したい(cronのように設定したい)
  • インフラコストは抑えたい
  • 導入は楽だと嬉しい

検討方法

以下の2つで検討を進めました

  1. Sidekiq vs Solid Queue」を読む
  2. Sidekiq/Solid Queueを導入 + 1個ジョブを実装して比較する

Solid Queueについて分かったこと

  • 導入自体はSidekiq/Solid Queueもあまり変わらない
  • Redis が不要なのでインフラコスト面では優勢
  • 標準機能でスケジュール設定機能がある
  • 小規模な運用に向いている
  • MySQL / PostgreSQLを利用する場合は推奨バージョンあり
  • mission_control-jobs がSolid Queueをサポートしている
  • データベースサーバーに別データベースを用意してSolid Queue用のテーブルを作成する
  • 実行ログはアプリケーションログに出力される
    • development環境だと log/development.log
    • Sidekiqだとsidekiqプロセスがログを出力されていたが、Solid Queueだと bin/jobs には何も出力されない

結論

今回はSolid Queueを利用するのがよさそうと考えました。

理由としては

  • 小規模な運用
  • インフラコストは少しでも抑えたい
  • スケジュール設定ができる

など要件を十分満たしていました :smile:

今後 Solid Queue を利用することで気づいたことがあれば記事を書きたいと思います。

参考リンク

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?