0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Laravelの非同期処理・自動化キーワードまとめ(ワーカー/キュー/スーパーバイザー/クローン)

0
Posted at

Laravelでアプリケーションを運用する際に欠かせない「裏側の仕組み」を、レストランの運営に例えて分かりやすくまとめました。


1. キュー (Queue)

【役割:注文票の並び(行列)】

ユーザーから依頼された「重い処理(メール送信、画像加工など)」を、その場ですぐに実行せず、一旦**「あとでやるリスト」**に入れておく仕組みです。

  • メリット: ユーザーを待たせずに「受け付けました!」と即座にレスポンスを返せる。
  • 実体: データベース(jobsテーブル)や、Redisなどのストレージに保存された「仕事のデータ」。

2. ワーカー (Worker)

【役割:調理担当のスタッフ】

キュー(注文票)に溜まっている仕事を、実際に一つずつ取り出して実行するプログラムです。

  • コマンド: php artisan queue:work
  • 動き: 仕事があれば処理し、なければ次の仕事が来るまでずっと待機(監視)し続けます。

3. スーパーバイザー (Supervisord)

【役割:現場監督】

ワーカー(スタッフ)が倒れていないか常に監視し、もし止まったら即座に再起動させるツールです。

  • なぜ必要か: queue:work コマンドはエラーなどで稀に止まってしまうことがあります。監督(スーパーバイザー)がいないと、作業員が不在になり、キューがいつまでも処理されなくなってしまいます。
  • 主な仕事: 24時間体制でワーカーを見守り、サーバーが再起動したときも自動でワーカーを立ち上げます。

4. クローン (Cron / Task Scheduler)

【役割:時報とスケジュール帳】

「1分おき」「毎日24時」など、決まった時間になったら特定の処理を起動する仕組みです。

  • Laravelでの仕組み: サーバーの cron が1分おきにLaravelを叩き起こし、Laravel内の「スケジュール帳(routes/console.phpapp/Console/Kernel.php)」を見て、その時間にやるべき仕事があれば実行します。
  • ワーカーとの違い:
    • ワーカー: 仕事が入ったら「即座に」やる。
    • クローン: 仕事があるかないかに関わらず「決まった時間に」動く。

💡 まとめ:これら4つの関係図

これらが連携して動くことで、スムーズな処理が実現します。

  1. クローンが「毎日18時だ、メルマガ発行の準備をしろ!」と命令。
  2. プログラムが「1万人分のメルマガ送付」という仕事をキューにドサッと入れる。
  3. ワーカーが、キューから1通ずつ取り出して実際にメールを送信する。
  4. スーパーバイザーは、ワーカーがサボったり倒れたりしないか監視し続ける。
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?