1
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?

Active Jobとバックグラウンドジョブフレームワーク

Last updated at Posted at 2024-06-19

TLTR;

  • Active Jobはバックグラウンドジョブを扱うためのフレームワークであり、一種のラッパーです。
  • Active Jobは、様々なバックグラウンドジョブフレームワーク(例:Sidekiq、Delayed Job、Resque)をサポートするためにアダプターパターンを使用し、抽象化された統合API(例:enqueue)を提供します。
  • Railsはサードパーティのバックグラウンドジョブフレームワークを使用しない場合、バックグラウンドジョブフレームワークの代わりにインメモリ方式を使用します。
  • バックグラウンドジョブフレームワークは、ほとんどの場合、キューを使用してジョブを管理し、ワーカーがジョブを取得して処理する方式で動作します。
  • ワーカーはバックグラウンドでキューに保存されたジョブを処理する独立したプロセスやスレッドです。ワーカーはジョブキューからジョブを取得して実行します。複数のワーカーを同時に実行できるため、並行してジョブを処理できます。
  • 一部のバックグラウンドジョブフレームワークは優先順位を設定することができます。

バックグラウンドジョブフレームワークの動作

  1. ジョブの予約:
    開発者は特定の時間に実行されるジョブを予約します。例えば、perform_atメソッドを使用してジョブを予約します。
    予約されたジョブはRedisやデータベースに保存され、実行時間の情報も一緒に保存されます。
  2. ジョブスケジューラー:
    スケジューラーは定期的にストレージをチェックして、実行時間になったジョブを確認します。
    実行時間になったジョブは予約ストレージから通常のジョブキューに移動されます。
  3. ジョブの実行:
    ワーカーは通常のジョブキューを監視し、キューにあるジョブを取得して実行します。
    ジョブが完了すると、ワーカーは次のジョブを処理します。

参考

1
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
1
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?