メール送信や動画の変換のように時間がかかる仕事を、その場でやると利用者は待たされます。そこで「後でやるリスト」に積んで、返事だけ先に返すのが非同期処理です。
初級の解説は準備中のため、初級の内容を表示しています。
概要 — まず全体をつかむ
詳細 — 1段階ずつ追う
これは何をする係?
人気店で「お先にどうぞ、出来たら番号でお呼びします」と番号札をもらう——あの仕組みです。重い依頼はキュー(※1 待ち行列) に積み、ワーカー(※2) が順にこなします。
登場人物メモ:
- ※1 キュー — 仕事を順番に並べる待ち行列
- ※2 ワーカー — キューから仕事を取り出して処理する係
- ※3 ジョブ — 1件の仕事(例:この動画を変換する)
仕事の流れ
- 重い依頼が来る(例:動画をアップロードした)
- その仕事をジョブとしてキューに積む
- 利用者にはすぐ「受け付けました」を返す(待たせない)
- 裏でワーカーがキューから順に取り出して処理する
- 終わったら通知する(メール・画面更新など)
なぜ後回しにする?
- 待たせない — 重い処理を待たずに、すぐ画面を返せる
- 混雑をならす — 一度に殺到しても、キューに溜めて順にさばける
- 失敗に強い — うまくいかなかったジョブを、あとで再試行できる
メール送信・画像/動画の変換・大量集計・通知などが定番の使いどころです。
⚠️ うまくいかないとき
- 処理が詰まる — 積まれる量にワーカーが追いつかず、完了が遅れる
- 二重実行 — 同じジョブが2回動いてしまう(メールが2通、など)
- 失敗の放置 — エラーになったジョブに気づけない
理解度チェック
そのまま解けます(成績は保存されません)。無料アカウントを作ると、学習の記録と進捗の山登りが始まります。
問1. 非同期処理に向いているのはどれ?
問2. 非同期処理(キュー)を使う一番の狙いに近いのは?
問3. キューから仕事を取り出して処理する係を何と呼ぶ?
問4. 動画をアップロードした直後、非同期処理では利用者に何を返すのが基本?
問5. 非同期処理で「二重実行」が起きると、たとえばどんな不都合が生じる?
問6. 仕事をキューに積んでおく利点として正しいのは?
問7. 仕事を順番に並べる「待ち行列」を、カタカナ3文字で何と呼びますか。
問8. キューに積まれる「1件の仕事」(例 この動画を変換する)を何と呼びますか。カタカナで答えてください。