SDN
← 概念一覧へ
非同期処理

タスクキュー

Task Queues

タスクと関連データを受け取って実行し、結果を返す仕組み。スケジューリング(定期実行)に対応し、計算集約的なバックグラウンドジョブに向く。Celeryが代表。

キーポイント
  • タスクと、それに必要なデータを受け取って実行し、結果を配信する。
  • スケジューリング(定期実行・遅延実行)に対応。
  • 計算集約的なバックグラウンドジョブに向く(集計、レポート生成、メール一括送信など)。
  • 代表ツール: Celery(スケジューリング対応、主にPython)。
トレードオフ

メッセージキューより一段高機能で、スケジューリングや結果の受け渡しまで面倒を見てくれる。重い定期バッチや計算ジョブを任せられる反面、フレームワーク(Celeryなど)の導入・運用コストが増える。単純な『投げっぱなし』ならメッセージキューで十分で、タスクキューは過剰なこともある。

メッセージキューとの違い

似ていますが、抽象度が違います。

  • メッセージキュー = 『メッセージ(=仕事の依頼)を運ぶ土管』。低レベルで汎用。
  • タスクキュー = 『タスク(=実行すべき処理)を管理する仕組み』。スケジューリングや結果取得まで面倒を見る高レベルなフレームワーク。

タスクキューは内部的にメッセージキューを使うことが多く、その上に『定期実行』『リトライ』『結果の受け渡し』といった便利機能を載せたもの、と捉えると分かりやすいです。

図を描画中...

何に使うか

  • 定期バッチ: 毎晩の集計、日次レポート生成。
  • 計算集約的な処理: 画像の一括変換、機械学習の推論バッチ。
  • 遅延実行: 『1時間後にリマインドメール』のような未来の処理。

つまずきポイント

  • 『投げて忘れる』だけならメッセージキューで足りる。スケジューリングや結果取得・リトライ管理が欲しいときにタスクキューの真価が出る。
  • Celeryのようなフレームワークは便利だが、導入・運用・デバッグの学習コストがある。要件に対して過剰でないか見極める。

📊 図解

タスク投入から結果通知まで(シーケンス図)

メッセージキューと違い、結果取得やリトライまで面倒を見ます。

図を描画中...

定期実行とリトライ(フローチャート)

タスクキューの真価は、定期スケジュールと失敗時のリトライにあります。

図を描画中...

関連する概念

この概念で腕試し

関連する 6 問のクイズに挑戦できます。

クイズを解く