Laravel を使用したキュー処理とタスクのスケジューリング: アプリケーションのパフォーマンスの向上
Laravel を使用したキュー処理とタスク スケジューリング: アプリケーションのパフォーマンスの向上
はじめに:
現代のアプリケーション開発において、パフォーマンスは非常に重要な問題です。ユーザー数が増加し、データ量が増加すると、アプリケーションは大量のリクエストを処理するという課題に直面する可能性があります。アプリケーションのパフォーマンスとスループットを向上させるために、キュー処理とタスク スケジューリングを使用できます。
Laravel は、強力なキュー処理およびタスク スケジューリング機能を提供する人気のある PHP フレームワークです。この記事では、Laravelのキューイング機能とタスクスケジューリング機能を使用してアプリケーションのパフォーマンスを向上させる方法を紹介します。
1. キュー処理とタスクのスケジューリングとは何ですか?
キュー処理とタスクのスケジューリングは、タスクをメイン アプリケーションから切り離し、非同期で処理する方法です。アプリケーションには、電子メールの送信、画像の処理、レポートの生成など、完了までに時間がかかるタスクがいくつかあります。これらのタスクをメイン アプリケーションで実行すると、アプリケーションの応答時間が遅くなり、ユーザー エクスペリエンスに影響します。
キュー処理とは、これらのタスクをキューに入れ、バックグラウンドのキューハンドラーで一つずつ処理することです。このようにして、タスクがバックグラウンドで非同期に処理されている間、メイン アプリケーションはユーザーのリクエストに迅速に応答できます。
タスクのスケジュール設定は、タスクを定期的に実行する方法です。一部のタスクは、すぐに実行する必要はありませんが、日次レポートの生成や定期的なバックアップなど、特定の間隔または特定の時点で実行する必要があります。タスクのスケジュール設定により、手動でタスクをトリガーすることなく、指定された時点で Laravel にタスクを実行させることができます。
2. キュー処理の設定と使用
- キュードライバーの設定
Laravel では、設定ファイルを通じてキューの処理に使用するドライバーを指定できます。config/queue.php
ファイルを開き、QUEUE_DRIVER
をdatabase
に設定します。これは、データベース ドライバーを使用してキューを処理することを意味します。 - キュー テーブルを作成する
次のコマンドを実行してデータベース移行ファイルを作成します:
php artisan queue:table
次に、移行コマンドを実行します:
php artisan migrate
これにより、データベース移行ファイル jobs
テーブル。キュー タスクの保存に使用されます。
- タスク クラスの定義
特定のキュー タスクを定義するクラスを作成する必要があります。app/Jobs
ディレクトリで、新しいファイルSendEmailJob.php
を作成し、そのファイル内に次のコードを定義します。
<?php namespace AppJobs; use IlluminateBusQueueable; use IlluminateContractsQueueShouldQueue; use IlluminateFoundationBusDispatchable; use IlluminateMailMailable; use IlluminateQueueInteractsWithQueue; use IlluminateQueueSerializesModels; use IlluminateSupportFacadesMail; class SendEmailJob implements ShouldQueue { use Dispatchable, InteractsWithQueue, Queueable, SerializesModels; protected $email; protected $subject; protected $body; public function __construct($email, $subject, $body) { $this->email = $email; $this->subject = $subject; $this->body = $body; } public function handle() { Mail::to($this->email)->send(new Mailable($this->subject, $this->body)); } }
このクラスは ## を継承します。 #ShouldQueue これがキューに入れることができるタスクであることを示すインターフェイス。
handle() メソッドでは、電子メールの送信など、特定のタスク ロジックを定義できます。
- タスクをキューに入れる
- タスクを実行する必要がある場合は、次のコードを使用してタスクをキューに入れることができます:
use AppJobsSendEmailJob; $job = new SendEmailJob('example@example.com', 'Hello', 'Welcome to Laravel!'); dispatch($job);
- キュー処理
- キュー内のタスクを実行するには、バックグラウンドでキュー ハンドラーを実行する必要があります。コマンド ラインから、次のコマンドを実行します。
php artisan queue:work --tries=3
--tries このパラメータは、タスクの実行が失敗した場合のリトライ回数を示します。タスクが指定された回数を超えて実行に失敗した場合、タスクはキューに戻されて処理を待機します。
- タスク スケジューリングの構成
app/Console/Kernel.phpファイルを開いて ## に移動します。 #schedule
メソッド内でタスクのスケジュール計画を定義します。たとえば、毎日午前 6 時にタスクを実行できます。protected function schedule(Schedule $schedule) { $schedule->job(new SendDailyReportJob)->dailyAt('06:00'); }
ログイン後にコピー 上記のコードは、タスク
が毎日午前 6 時に実行されることを示しています。
- Laravel がタスク スケジュール プランを自動的に実行できるように、サーバー上に Cron タスクを設定する必要もあります。サーバーのターミナルを開き、次のコマンドを実行します:
crontab -e
ログイン後にコピー 次に、次の内容をファイルに追加します:
* * * * * php /path-to-your-project/artisan schedule:run >> /dev/null 2>&1
これにより、Cron が 1 分ごとに実行されます
schedule:run タスクのスケジュール計画を確認および実行するコマンド。 概要:
この記事が、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について詳しく説明します。
