Laravel では、キューは非同期処理のための重要なツールです。非同期タスクを処理する場合、キューを使用することでサーバー リソースをより柔軟に利用し、アプリケーションのスケーラビリティとパフォーマンスを向上させることができます。時間のかかるタスクをキューにプッシュすると、アプリケーションは非同期で実行を継続し、バックグラウンド作業はキューによって処理されます。キューに処理が必要なタスクがある場合、キューからタスクを消費する必要がありますが、この記事ではLaravelのキューを消費する方法を紹介します。
Laravel のキュー機能を使用する前に、キューを設定し、.env
設定ファイルで次のパラメータを設定する必要があります:
QUEUE_CONNECTION=redis REDIS_HOST=127.0.0.1 REDIS_PASSWORD=null REDIS_PORT=6379
独自のニーズに応じて構成できます。パスワードが必要ない場合は、REDIS_PASSWORD
を null
に設定できます。この記事では、Laravel キューのドライバーとして Redis を使用します。
Laravel では、次のコマンドを使用してキュー タスクを作成できます:
php artisan make:job MyJob
作成後、app/Jobs で
#MyJob という名前の PHP ファイルが ## ディレクトリに生成されます。完了するタスク コードを追加するだけです。
method
$this->dispatch(new MyJob($data));
method
MyJob::dispatch($data);
MyJob クラス、
$data のインスタンスです。タスクに渡されるデータです。配列またはオブジェクトにすることができます。
php artisan queue:work --queue=queue-name --tries=3
tries
はエラー試行回数、つまりタスクが失敗したときに処理するプロセスです。タスクは複数回処理されます。再試行してください。同時に、キューの作業を開始するプロセスで、キュー内のタスクの実行方法を指定することもできます。 使用
php Artisan queue:listencommandこのコマンドは、キュー タスクの監視にも使用され、
php と同じです職人キュー:ワーク
supervisorsupervisor
[program:laravel-worker] process_name=%(program_name)s_%(process_num)02d command=php /path/to/artisan queue:work redis --sleep=3 --tries=3 autostart=true autorestart=true user=root numprocs=8 redirect_stderr=true stdout_logfile=/path/to/worker.log
supervisor
を使用したサンプル コードです。5. 概要
以上がLaravelでキュータスクを消費する方法について話しましょうの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。