ホームページ > PHPフレームワーク > Laravel > Laravelでキュータスクを消費する方法について話しましょう

Laravelでキュータスクを消費する方法について話しましょう

PHPz
リリース: 2023-04-14 17:15:46
オリジナル
1045 人が閲覧しました

Laravel では、キューは非同期処理のための重要なツールです。非同期タスクを処理する場合、キューを使用することでサーバー リソースをより柔軟に利用し、アプリケーションのスケーラビリティとパフォーマンスを向上させることができます。時間のかかるタスクをキューにプッシュすると、アプリケーションは非同期で実行を継続し、バックグラウンド作業はキューによって処理されます。キューに処理が必要なタスクがある場合、キューからタスクを消費する必要がありますが、この記事ではLaravelのキューを消費する方法を紹介します。

1. キューの設定

Laravel のキュー機能を使用する前に、キューを設定し、.env 設定ファイルで次のパラメータを設定する必要があります:

QUEUE_CONNECTION=redis
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
ログイン後にコピー

独自のニーズに応じて構成できます。パスワードが必要ない場合は、REDIS_PASSWORDnull に設定できます。この記事では、Laravel キューのドライバーとして Redis を使用します。

2. キュー タスクの作成

Laravel では、次のコマンドを使用してキュー タスクを作成できます:

php artisan make:job MyJob
ログイン後にコピー

作成後、app/Jobs で#MyJob という名前の PHP ファイルが ## ディレクトリに生成されます。完了するタスク コードを追加するだけです。

3. キュー タスクのプッシュ

キュー タスクの作成が完了したら、それをキューにプッシュする必要があります。 Laravel には、タスクをキューにプッシュするための複数のメソッドが用意されています。一般的なメソッドは次の 2 つです:

    Use
  1. queue()method
  2. $this->dispatch(new MyJob($data));
    ログイン後にコピー
  1. dispatch()method
  2. MyJob::dispatch($data);
    ログイン後にコピー
を使用します。上記 2 つのメソッドのパラメータは、

MyJob クラス、$data のインスタンスです。タスクに渡されるデータです。配列またはオブジェクトにすることができます。

4. 消費キュータスク

タスクをプッシュした後、キュー内のタスクを消費する必要があります。 Laravel では、次のようなキュー タスクを使用するためのさまざまな方法が提供されています。ターミナル ウィンドウでキュー ワーク プロセスを開始して、キュー内に処理する必要のあるタスクがあるかどうかを監視するために使用されます。

php artisan queue:work --queue=queue-name --tries=3
ログイン後にコピー
このうち、
    queue-name
  1. はキュー名、tries はエラー試行回数、つまりタスクが失敗したときに処理するプロセスです。タスクは複数回処理されます。再試行してください。同時に、キューの作業を開始するプロセスで、キュー内のタスクの実行方法を指定することもできます。

使用

php Artisan queue:listen

commandこのコマンドは、キュー タスクの監視にも使用され、php と同じです職人キュー:ワーク

コマンドの違いは、複数のキュー名を同時に監視できることと、キュー タスクをグループ化できることです。
  1. supervisor
  2. デーモン プロセスを使用します

supervisor

を使用すると、バックグラウンドでキュー タスクを継続的に監視し、キュー ワーカーを防ぐことができます。プロセスが予期せず終了します。
    [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
    ログイン後にコピー
  1. 上記は、supervisor を使用したサンプル コードです。
  2. numprocs=8
は、開くキュー ワーカー プロセスの数を指定します。

5. 概要

上記は Laravel キューの使用方法です。独自のニーズと実際の状況に応じて、上記の方法を使用してキュー タスクを使用および処理することを選択できます。 , Laravel キューについてあまり詳しくない場合は、公式ドキュメントを参照して学ぶことができます。

以上がLaravelでキュータスクを消費する方法について話しましょうの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート