前提
私は普段Laravelのフレームワークを用いて開発しているため、参考記事にはLaravelの公式ドキュメントを記載しておきます。
ジョブとは
- 「実際に実行される処理」を指す
- コンビニを例に挙げると「ジョブ = レジでの会計処理」
キューとは
- 「処理が実行されるのを待っているジョブのリスト」のことを指す
- コンビニを例に挙げると「キュー = レジの会計を待って並んでいる人」
- 「ジョブをキューに投入する」(ディスパッチ)という表現も用いられ、これは実行したいジョブを実行待ちリストに加えるという意味
ワーカーとは
- 「ジョブを実行する役割を持つもの」を指す
- コンビニを例に挙げると「ワーカー = レジの会計をする店員」
ジョブとバッチの違い
「ジョブ」と「バッチ」の違いがイマイチ分からない、、といった話を時々見かけるので比較しつつ違いを述べてみます。
ジョブ | バッチ | |
---|---|---|
概要 | CPUが行う処理の単位 | CPUが一定期間や一定量ごとに処理を行う方式 |
データ処理 | リアルタイム処理 | 予め指定されたスケジュールで処理 |
メリット | リアルタイム処理により、実行結果の反映が早い | 大量データを一括扱えるためリソースの節約が可能 |
具体例 | オンラインショッピングの決済 | 大量データのインポート |