Laravel は、そのシンプルさ、使いやすさ、そして強力な機能で人気のある非常に人気のある PHP フレームワークです。 Laravel では、キューは開発者が高い同時実行性や大量のデータなどの問題を解決するのに役立つ非常に便利な機能です。この記事では、Laravel キューの基本とその使用方法について説明します。
1. Laravel キューとは
Laravel キューは非同期タスクを処理するためのツールで、タスクをキューに追加し、現在のリクエストに影響を与えることなくバックグラウンドでこれらのタスクを非同期に処理できます。反応時間。キューを使用して、電子メールの送信、画像の処理、PDF の生成など、さまざまなタスクを処理できます。
キューの動作原理は非常に単純です。まずタスクがキューに入れられ、次にバックグラウンド プロセスがこれらのタスクを非同期に実行します。 Laravel のキューは、Redis、RabbitMQ、Beanstalkd などの複数のキュー ドライバーをサポートしています。開発者は、ニーズに応じて適切なキュー ドライバーを選択できます。
2. Laravel キューの使用方法
Laravel キューの使用は非常に簡単で、次の手順に従うだけです:
Laravel でのキュー ドライバーの設定は非常に簡単で、config/queue.php ファイルを開いて、対応するキュー ドライバーを設定するだけです。たとえば、Redis をキュー ドライバーとして使用すると、次のように構成できます。
'connections' => [ 'redis' => [ 'driver' => 'redis', 'connection' => 'default', 'queue' => 'default', 'retry_after' => 90, 'block_for' => null, ], ],
タスクを処理するためのクラスの作成は非常に簡単です。ハンドル メソッドを定義するだけで済みます。たとえば、電子メールを送信するためのタスク クラスを作成します。
<?php namespace App\Jobs; use Illuminate\Bus\Queueable; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Foundation\Bus\Dispatchable; use Illuminate\Queue\InteractsWithQueue; use Illuminate\Queue\SerializesModels; use Illuminate\Support\Facades\Mail; class SendEmail implements ShouldQueue { use Dispatchable, InteractsWithQueue, Queueable, SerializesModels; protected $user; /** * Create a new job instance. * * @param $user */ public function __construct($user) { $this->user = $user; } /** * Execute the job. * * @return void */ public function handle() { Mail::to($this->user->email)->send(new Welcome($this->user)); } }
タスクをキューに追加するのは非常に簡単です。発送方法。たとえば、コントローラーで次のように使用できます。
use App\Jobs\SendEmail; public function index() { $user = auth()->user(); SendEmail::dispatch($user); return view('welcome'); }
タスクがキューに追加された後、キュー プロセスは次のことを行う必要があります。最後に開始されます。キュープロセスを開始するには、Laravel 独自の Artisan コマンドを使用する方法や、スーパーバイザーなどのサードパーティ ツールを使用する方法など、さまざまな方法があります。たとえば、Artisan コマンドを使用してキュー プロセスを開始します。
php artisan queue:work --tries=3 --timeout=30
上記の手順を通じて、Laravel キューを使用して非同期タスクを処理できます。
3. 一般的に使用される Laravel キュー関数
Laravel キューには、次のような便利な関数が他にもたくさんあります:
タスクの実行が失敗した場合、キューの failed_jobs テーブルを使用して、失敗したタスクを記録できます。同時に、タスクの試行回数とタイムアウトを設定して、タスクが常に失敗するのを防ぐこともできます。
Laravel キューはタスクの同時処理をサポートしており、コマンドラインで複数のプロセスを起動してタスクを同時に処理することで、タスクの処理効率を向上させることができます。
サードパーティ ツールである Laravel Horizon を使用すると、タスクのステータス、キューの長さ、その他の情報を簡単に監視できます。時間内に問題を見つけて対処します。
タスクをグループ化する必要がある場合は、指定したキューにタスクを追加できます。たとえば、上記の SendEmail タスクをメール キューに追加します。
SendEmail::dispatch($user)->onQueue('mail');
キュー プロセスを開始するときに、どのキューを処理するかを指定できます。
php artisan queue:work --queue=mail
上記は、基本的な知識と使用法です。 Laravel キューの。 Laravel が開発を続けるにつれて、キューはますます強力になります。この記事を読むことで、誰もがLaravelキューの使い方をより深く理解し、実際の開発に応用できるようになると思います。
以上がLaravelキューの使い方の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。