# 非同期処理（キュー・ジョブ）— 重い仕事は後回しにする

> レベル: 初級 ／ 対象: 大人
> 出典: Kotowary — https://kotowary.com/learn/units/async-queue?level=beginner&audience=adult
メール送信や動画の変換のように時間がかかる仕事を、その場でやると利用者は待たされます。そこで「**後でやるリスト**」に積んで、返事だけ先に返すのが**非同期処理**です。

## これは何をする係？

人気店で「お先にどうぞ、出来たら番号でお呼びします」と番号札をもらう——あの仕組みです。重い依頼は**キュー（※1 待ち行列）** に積み、**ワーカー（※2）** が順にこなします。

**登場人物メモ**:

- **※1 キュー** — 仕事を順番に並べる待ち行列
- **※2 ワーカー** — キューから仕事を取り出して処理する係
- **※3 ジョブ** — 1件の仕事（例：この動画を変換する）

## 仕事の流れ

1. 重い依頼が来る（例：動画をアップロードした）
2. その仕事を**ジョブ**としてキューに積む
3. 利用者には**すぐ「受け付けました」**を返す（待たせない）
4. 裏で**ワーカー**がキューから順に取り出して処理する
5. 終わったら通知する（メール・画面更新など）

## なぜ後回しにする？

- **待たせない** — 重い処理を待たずに、すぐ画面を返せる
- **混雑をならす** — 一度に殺到しても、キューに溜めて順にさばける
- **失敗に強い** — うまくいかなかったジョブを、あとで再試行できる

メール送信・画像/動画の変換・大量集計・通知などが定番の使いどころです。

## ⚠️ うまくいかないとき

- **処理が詰まる** — 積まれる量にワーカーが追いつかず、完了が遅れる
- **二重実行** — 同じジョブが2回動いてしまう（メールが2通、など）
- **失敗の放置** — エラーになったジョブに気づけない
