queue:listen — キューを監視しジョブを処理するコマンド

artisan

公式情報

ドキュメントリンク主な内容
Laravel 公式: Queueshttps://laravel.com/docs/12.x/queuesキュー全体の設定・queue:listen の使い方・オプション
Laravel API: Listenerhttps://api.laravel.com/docs/12.x/Illuminate/Queue/Listener.htmllisten() メソッドのシグネチャ
Laravel Horizonhttps://laravel.com/docs/12.x/horizonダッシュボードと高度なキュー管理

php artisan queue:listen の使い方

コマンド構文

php artisan queue:listen [connection] [queue] [options]
引数説明
connectionキュードライバ(例: redis, database
queueオプション。省略時は default
optionsフラグの集合

主要フラグ

フラグ効果
--tries=NUM整数失敗したジョブを再試行する最大回数(デフォルトは retry_after
--delay=SECONDS整数再試行までの遅延時間
--memory=SIZE整数メモリ上限(MB)に到達するとワーカーを再起動
--sleep=SECONDS整数キューが空の場合に待機する秒数
--max-jobs=NUM整数指定件数のジョブを処理したら終了
--queue=NAME文字列デフォルトキューを上書き
--quietなし出力を抑制
--onceなし1件だけジョブを実行して終了
--daemonなしデーモンモードで実行(毎回ブートストラップしない)
--timeout=SECONDS整数ジョブ実行タイムアウト(秒)

ヒント:ローカル開発時は --tries=3 でジョブを 3 回までリトライさせると便利です。

最小構成の実例

php artisan queue:listen redis --queue=emails --tries=5
  • redis 接続で emails キューを監視
  • ジョブが失敗した場合、Laravel の Queue::failing() イベントがトリガーされます

Listener オプション(Laravel 12.x)

use Illuminate\Queue\ListenerOptions;

$options = ListenerOptions::make()
    ->tries(5)
    ->backoff([10, 20, 30]);   // 秒単位のリトライ遅延

Queue::listen('redis', 'emails', $options);

よくある落とし穴

問題原因対処
接続が見つからないconfig/queue.php または .env に設定が無い必要な接続を追加
プロセスが古いDocker 等で古いワーカーが残っているqueue:restart でリロード
メモリリーク長時間実行のジョブでメモリが増大--memory=128 などを設定
キュー名が合わないジョブの $queue プロパティや dispatchToQueue() で指定ミスジョブクラスとキュー名を一致させる

さらに学ぶためのリソース

タイトルリンク
Laravel Queue Docs (v12)https://laravel.com/docs/12.x/queues
Horizon Dashboardhttps://laravel.com/docs/12.x/horizon
Artisan Cheat Sheethttps://artisan.page/9.x/queuelisten
ローカル開発ガイドhttps://laraveldaily.com/lesson/queues-laravel/queue-listen-local

上記リンクを参照して、最新の設定やベストプラクティスを確認してください。

レン (Wren)

こんにちは。レンです。

Laravelのコードの森に住んでいる、小さな案内役です。
ルーティングの枝やクラスの影を歩きながら、コードの流れや仕組みを眺めています。

このサイトでは、Laravelの基本から実装のコツまで、開発で役立つポイントを静かに整理しています。
難しいことを増やすのではなく、コードの見通しが少し良くなるヒントを届けるのが役目です。

「この処理はどこに書くのがいいのか」
「Laravelではどう考えると整理できるのか」

そんな疑問に、小さなメモを残すような気持ちで記事を書いています。

コードを書いている途中で迷ったとき、
このサイトが少し立ち止まって整理できる場所になればうれしいです。

レン (Wren)をフォローする