queue:work -daemonとqueue:listenの違いは何ですか?
質問
オフラインのジョブサーバーをセットアップしているところです。ドキュメントを読みましたが、2 つのコマンドの違いがよくわかりません。
artisan queue:work --daemon
と
artisan queue:listen
. デーモンの実行にはどのコマンドを使うべきでしょうか?
どのように解決するのですか?
2017-04-07に更新された編集。
キューを実行する方法が3つになりました。
-
queue:work
- これは新しいデーモンプロセスです(このフラグはもはや必要ありません)。フレームワークは一度だけ起動し、ジョブを通してループしつづけます。これは無限に続きます。メモリやCPUの使用量はqueue:listen
よりも少ないメモリとCPUで済みます。また、忘れずにqueue:restart
を使って、パッチ適用中にプッシュしたコードの変更をキューに強制的に反映させることも忘れてはいけません。 -
queue:work --once
- これはフレームワークを起動し、1つのジョブを処理し、そしてシャットダウンします。開発中のテストなどに便利です。 -
queue:listen
- これは、すべてのサイクルでフレームワークを起動し、1つのジョブを処理し、その後完全にシャットダウンし、再びフレームワークを起動するなどして、無限にループします。これは、各ジョブが処理された後、すべてのメモリとプロセスが解放されることを意味します。もしメモリリークをqueue:work
- でメモリリークがある場合は、これを試してみてください。
は
--daemon
フラグは、もはやこれらのコマンドに影響を与えません。
オリジナルの回答です。
2つの異なる問題が記載されています。
あるのは
artisan queue:work
と
artisan queue:listen
-
queue:work
は、単にキューの次のジョブをポップオフして、そのジョブだけを処理します。これは「ワンオフ」コマンドで、1 つのキュー コマンドが処理されるとコマンド プロンプトに戻ります。 -
queue:listen
は、キューをリッスンし、受け取ったキューコマンドを処理しつづけます。これは、あなたが止めるまで無限に実行し続けます。
Laravel >=4.2には
--daemon
コマンドが追加されました。その動作は、すべてのキューが処理された後にフレームワーク全体を再起動するのではなく、単にキューを直接実行し続けるというものです。これは、オプションのコマンドで
は著しく
これはオプションのコマンドで、キューのメモリと CPU の必要量を 減らします。
で重要な点は
--daemon
コマンドの重要な点は、アプリケーションをアップグレードする際に、特にキューを再起動させる必要があるということです。
queue:restart
でキューを再起動する必要があるということです。そうしないと、キューがまだ古いコードをメモリ上に保持しているため、潜在的にあらゆる種類の奇妙なエラーが発生する可能性があります。
ですから、あなたの質問に答えるために "
デーモンを実行するためにどのコマンドを使用すべきですか。
という質問に対しては、ほとんどの場合、次のように答えます。
queue:work --daemon
関連
-
[解決済み】Laravel PHP コマンドが見つかりません。
-
[解決済み] Laravel. リレーションを持つモデルでscope()を使用する
-
[解決済み] Laravel Eloquent - distinct() と count() が正しく動作しない。
-
[解決済み] Laravel コントローラ サブフォルダ ルーティング
-
[解決済み] コレクション要素をフェッチした後、アンセット(削除)するには?
-
[解決済み] Laravel Queue システムをサーバー上で動作させる方法
-
[解決済み] UnixタイムスタンプをCarbonオブジェクトに変換する
-
[解決済み] ピボットテーブルのデータ添付でタイムスタンプが更新されない
-
[解決済み] Laravel 4: SQLを実行するには?
-
[解決済み] Laravel - カスタムカラムで検索するか、失敗するか
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Laravelで非キーカラムのフィールドに明確な値を取得する方法は?
-
[解決済み] Laravel Migrationsから特定のファイルをMigrateする
-
[解決済み] Laravel コントローラ サブフォルダ ルーティング
-
[解決済み] コレクション要素をフェッチした後、アンセット(削除)するには?
-
[解決済み] laravel Unable to prepare route ... for serialization. クロージャを使う
-
[解決済み] ピボットテーブルのデータ添付でタイムスタンプが更新されない
-
[解決済み] Laravel 4: SQLを実行するには?
-
[解決済み] laravel with() メソッドと load() メソッドの比較
-
[解決済み] テーブル名を変更するためのLaravelマイグレーション
-
Laravel 5+でデータベースからカラムを削除する