laravelキューとは何ですか
laravel では、キューは操作が制限された線形テーブルであり、テーブルの前端 (キューヘッド) では削除操作、テーブルの後端 (キュー末尾) では挿入操作のみが許可されます。 ; 開発者はキューを通じて、時間のかかるタスクの処理を延期できるため、Web リクエストの応答速度が大幅に向上します。
このチュートリアルの動作環境: Windows 7 システム、Laravel 6 バージョン、Dell G3 コンピューター。
#laravel でのキューの使用
##1. キューとはQueue 操作が制限された線形テーブルで、テーブルの前端では削除操作、後端では挿入操作のみが可能なのが特徴です。挿入操作を実行する端はキューの末尾と呼ばれ、削除操作を実行する端はキューの先頭と呼ばれます。
キューを使用すると、時間のかかるタスク (電子メールの送信など) の処理を後まで延期できます。これらの時間のかかるタスクを遅らせると、Web リクエストの応答速度が大幅に向上します。
2. 利点
- 分離: メッセージ キューはシステムを分離し、応答速度を向上させることができます。内部に集約され外部にオープン;
- 非同期: メッセージ キューはシステムの非同期機能を取り除き、機能の結合を減らし、開発効率を向上させることができます。
- ##ピーク クリッピング: メッセージ キューはピークとフローをクリップして、ダウンストリーム コンシューマーの安定した動作を保証できます。
- 3. 構成
キュー設定ファイルは config/queue.php に保存されます。このファイルには、データベース、Beanstalkd、Amazon SQS、Redis、同期ドライバー (同期 - ローカル使用用) など、フレームワークに含まれる各キュー ドライバーの接続設定が含まれています。 ここでは Redis がドライバーとして使用されており、Redis と関連拡張機能をインストールする必要があります。
4. タスク
何かをキューに入れる必要があり、それをタスクと呼びます。 Laravel フレームワークでタスクを作成すると、次のコマンドが提供されます: php artisan make:job TestJob
namespace App\Jobs;use Illuminate\Bus\Queueable;use Illuminate\Contracts\Queue\ShouldBeUnique;use Illuminate\Contracts\Queue\ShouldQueue;use Illuminate\Foundation\Bus\Dispatchable;use Illuminate\Queue\InteractsWithQueue;use Illuminate\Queue\SerializesModels;use Illuminate\Support\Facades\DB;use Symfony\Polyfill\Intl\Idn\Info;class TestJob implements ShouldQueue{ use Dispatchable, InteractsWithQueue, Queueable, SerializesModels; /** * Create a new job instance. * * @return void */ public function __construct() { // } /** * Execute the job. * * @return void */ public function handle() {// \Log::info('hhh'); DB::connection('test') ->table('master') ->insert([ 'name'=>'小白', 'email'=>'123@qq.com' ]); }}
5. Distribution
タスク クラスを作成したら、タスク自体のディスパッチ メソッドを使用してそれをディスパッチできます。ディスパッチ メソッドに渡されたパラメータは、タスクのコンストラクターに渡されます。 onQueue: 指定されたキュー;
onConnection: 指定された接続;lay: 遅延キュー;
dispatchNow: 同期スケジューリング;#6. キューの消費#在路由中简单调用 Route::get('queue',function(){ \App\Jobs\TestJob::dispatch(); // \App\Jobs\TestJob::dispatch()->onQueue('qq'); });ログイン後にコピー
2 つ実行このルートは、qq という名前のキューを生成することがわかります。後でキューを消費します
#Laravel新しくキューにプッシュされたタスクを処理するキュー プロセッサがあります。 Artisan コマンド queue:work を使用してキュー プロセッサを開始します。 queue:work コマンドが開始されると、手動で停止するかターミナルを閉じるまで実行され続けることに注意してください。 work --once パラメータを追加し、指定されたキューを消費します
#消费qq队列 php artisan queue:work --queue=qq
再度ルーティングを実行します
7、イベントキュー
キューは通常、遅延したタスクを処理するために使用され、イベントはビジネス ロジックによって処理されます。 Laravel のイベントトリガーは非同期業務処理のキューに分散されるため、ユーザーにプロンプトメッセージを表示する前にリアルタイムで実行結果を待つことなく、迅速に応答できます。
イベント内のビジネスをキューに保存する必要がある場合、キューを再分散する必要はなく、対応するリスナーに Illuminate\Contracts\Queue\ShouldQueue インターフェイスを直接実装できます。
php artisan make:event TestEvent php artisan make:listener TestListener
TestListener.php
namespace App\Listeners; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Queue\InteractsWithQueue; use Illuminate\Support\Facades\DB; class TestListener implements ShouldQueue { /** * Create the event listener. * * @return void */ public function __construct() { // } /** * Handle the event. * * @param object $event * @return void */ public function handle() { DB::connection('test') ->table('master') ->insert([ 'name'=>'小黑', 'email'=>'234@qq.com' ]); } }
Route::get('queue',function(){ //\App\Jobs\TestJob::dispatch(); //指定队列名称 //\App\Jobs\TestJob::dispatch()->onQueue('qq'); return event(new \App\Events\TestEvent()); });
php artisan queue:work
【関連する推奨事項: laravel ビデオチュートリアル ]
以上がlaravelキューとは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









Laravel 9 と CodeIgniter 4 の最新バージョンでは、更新された機能と改善が提供されます。 Laravel9はMVCアーキテクチャを採用しており、データベース移行、認証、テンプレートエンジンなどの機能を提供します。 CodeIgniter4 は、HMVC アーキテクチャを使用してルーティング、ORM、およびキャッシュを提供します。パフォーマンスの面では、Laravel9 のサービスプロバイダーベースの設計パターンと CodeIgniter4 の軽量フレームワークにより、優れたパフォーマンスが得られます。実際のアプリケーションでは、Laravel9 は柔軟性と強力な機能を必要とする複雑なプロジェクトに適しており、CodeIgniter4 は迅速な開発や小規模なアプリケーションに適しています。

Laravel と CodeIgniter のデータ処理機能を比較します。 ORM: Laravel はクラスとオブジェクトのリレーショナル マッピングを提供する EloquentORM を使用しますが、CodeIgniter は ActiveRecord を使用してデータベース モデルを PHP クラスのサブクラスとして表します。クエリビルダー: Laravel には柔軟なチェーンクエリ API がありますが、CodeIgniter のクエリビルダーはよりシンプルで配列ベースです。データ検証: Laravel はカスタム検証ルールをサポートする Validator クラスを提供しますが、CodeIgniter には組み込みの検証関数が少なく、カスタム ルールの手動コーディングが必要です。実践例:ユーザー登録例はLarを示しています

初心者にとって、CodeIgniter は学習曲線が緩やかで機能は少ないですが、基本的なニーズはカバーしています。 Laravel は幅広い機能セットを提供しますが、学習曲線はわずかに急になります。パフォーマンスの点では、Laravel と CodeIgniter はどちらも良好なパフォーマンスを示します。 Laravel にはより広範なドキュメントとアクティブなコミュニティ サポートがあり、CodeIgniter はよりシンプルで軽量で、強力なセキュリティ機能を備えています。ブログアプリケーションを構築する実際のケースでは、Laravel の EloquentORM を使用するとデータ操作が簡素化されますが、CodeIgniter ではより手動の構成が必要になります。

大規模プロジェクト用のフレームワークを選択する場合、Laravel と CodeIgniter にはそれぞれ独自の利点があります。 Laravel はエンタープライズレベルのアプリケーション向けに設計されており、モジュール設計、依存関係の注入、強力な機能セットを提供します。 CodeIgniter は、速度と使いやすさを重視した、小規模から中規模のプロジェクトに適した軽量フレームワークです。複雑な要件と多数のユーザーを伴う大規模なプロジェクトには、Laravel のパワーとスケーラビリティがより適しています。単純なプロジェクトやリソースが限られている状況では、CodeIgniter の軽量で迅速な開発機能がより理想的です。

Laravel - アーティザン コマンド - Laravel 5.7 には、新しいコマンドを処理およびテストするための新しい方法が付属しています。これには職人コマンドをテストする新しい機能が含まれており、そのデモについては以下で説明します。

小規模なプロジェクトの場合、Laravel は強力な機能とセキュリティを必要とする大規模なプロジェクトに適しています。 CodeIgniter は、軽量さと使いやすさを必要とする非常に小規模なプロジェクトに適しています。

Laravel の Blade と CodeIgniter の Twig テンプレート エンジンを比較し、プロジェクトのニーズと個人的な好みに基づいて選択してください。Blade は MVC 構文に基づいており、適切なコード編成とテンプレートの継承を促進します。 Twig は、柔軟な構文、強力なフィルター、拡張サポート、セキュリティ サンドボックスを提供するサードパーティ ライブラリです。

Laravel - Artisan Console - Laravel フレームワークは、コマンドラインを介した対話のための 3 つの主要なツール、つまり Artisan、Ticker、REPL を提供します。この章ではArtisanについて詳しく説明します。
