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