タスクキュー
Task Queues
タスクと関連データを受け取って実行し、結果を返す仕組み。スケジューリング(定期実行)に対応し、計算集約的なバックグラウンドジョブに向く。Celeryが代表。
メッセージキューとの違い
似ていますが、抽象度が違います。
- メッセージキュー = 『メッセージ(=仕事の依頼)を運ぶ土管』。低レベルで汎用。
- タスクキュー = 『タスク(=実行すべき処理)を管理する仕組み』。スケジューリングや結果取得まで面倒を見る高レベルなフレームワーク。
タスクキューは内部的にメッセージキューを使うことが多く、その上に『定期実行』『リトライ』『結果の受け渡し』といった便利機能を載せたもの、と捉えると分かりやすいです。
図を描画中...
何に使うか
- 定期バッチ: 毎晩の集計、日次レポート生成。
- 計算集約的な処理: 画像の一括変換、機械学習の推論バッチ。
- 遅延実行: 『1時間後にリマインドメール』のような未来の処理。
つまずきポイント
- 『投げて忘れる』だけならメッセージキューで足りる。スケジューリングや結果取得・リトライ管理が欲しいときにタスクキューの真価が出る。
- Celeryのようなフレームワークは便利だが、導入・運用・デバッグの学習コストがある。要件に対して過剰でないか見極める。
📊 図解
タスク投入から結果通知まで(シーケンス図)
メッセージキューと違い、結果取得やリトライまで面倒を見ます。
図を描画中...
定期実行とリトライ(フローチャート)
タスクキューの真価は、定期スケジュールと失敗時のリトライにあります。
図を描画中...