ピックアップ
Laravelのqueueのドライバーの基本についての個人的メモ。

Laravelで、
queueを使っていたが、
使い方のみ調べて、
設定して運用していたので、
改めて、
個人用に再確認して、
それを自分のために整理したメモ。
最新情報や、
情報の精査は、
公式サイトなどを正として、
必要に応じて、
そちらをご覧ください。
あくまで、
個人用のメモなので。
前提
Laravelで試していますが、
バージョンについては、
php artisan --versionで確認すると、
概ね、
10か11でした。
Laravel Queueの基本と試した件
Queueの基本部分と、
それを試す件については、
以下の記事の方に、
個人的にメモ。
Laravelのqueueについてのデフォルト設定と基本についての個人的メモ。
Laravel Queueのドライバ
デフォルトは、
syncLaravel Queue は「Job を dispatch する」という共通インターフェースを提供
ドライバごとに Job の保管・実行方法が異なる
sync→ 即実行(ストレージ不要)database→ DB テーブルに Job を保存 → worker が取り出して実行redis→ Redis に保存 → worker が非同期で実行sqs→ AWS SQS に保存 → worker が非同期で実行
こちら、
| Laravel バージョン | Queue 関連の変更・sync登場 |
|---|---|
| Laravel 4 | Queue サポート開始。非同期キュー中心 |
| Laravel 4.x | sync ドライバ追加(開発用) |
| Laravel 5〜8 | sync ドライバをデフォルトに設定。DB/Redis/SQS 等の多彩なドライバ追加 |
| Laravel 9〜10 | 同様、sync はデフォルトで「簡単に即時実行」を保証。非同期は外部ドライバで制御 |
ということらしい。
これ、
どこ押さえ解けば良いのか?
💡 ポイント
- sync は 開発・学習のために生まれた「即時実行型」ドライバ
- 歴史的には「非同期キューの準備が不要な環境で Queue を扱う」ためのもの
- 本番運用では大量 Job を扱う場合、sync のままでは呼び出し元がフリーズするのが設計上の制約
ということは、
本番でsyncは想定されていない?
| 項目 | sync | 他ドライバ(database / redis) |
|---|---|---|
| 非同期処理 | なし | あり |
| Job の保管 | なし | DB / Redis に格納 |
| 並列処理 | dispatch 呼び出し元のプロセス依存 | worker プロセスで実行可能 |
| 大量 Job | dispatch 側がブロック → UI フリーズ | worker による分散処理可能 |
| エラー管理 | その場で throw | failed_jobs テーブルで管理可能 |
💡 ポイント:
「sync は本番運用を想定していない」と考えて差し支えない
本番では非同期ドライバに切り替えるのが標準的な設計
おすすめ書籍
コメント一覧
コメントはまだありません。




コメントを残す