インターネット ビジネスの継続的な発展に伴い、高い同時実行性と大量のデータ処理がインターネット アプリケーションが直面しなければならない課題となっています。これらの課題に対処するために、Laravel フレームワークではキューを使用して時間のかかるタスクを処理することが一般的なソリューションになりました。この記事では、Laravel Horizon と IronMQ を使用してキューとそのタスクを管理する方法を紹介します。
1. Laravel Horizon
Laravel Horizon は、Laravel が公式に提供するキュー管理ツールで、リアルタイムでキューを表示するのに役立つ使いやすく美しい Web インターフェイスを提供します。 . タスクのステータス、キュー内のタスクの管理、キューの実行ステータスの監視など。さらに、Laravel Horizon は、統計、自動再試行、時間枠制限、キュー内のタスクの例外処理などの強力な機能も提供します。
- Laravel Horizon のインストール
Composer を使用して Laravel Horizon をインストールします: 次のコマンドを実行します:
composer require laravel/horizon
ログイン後にコピー
- Horizon スクリプトの公開
上記のコマンドを実行した後、次のコマンドを実行して、Laravel Horizon スクリプトをプロジェクトに公開する必要もあります:
php artisan horizon:install
ログイン後にコピー
- Laravel Horizon の構成
#Laravel Horizon 構成ファイルは config/horizon.php にあります。このファイルを変更することで Horizon の動作を構成できます。たとえば、構成ファイルに接続とキューの名前を設定します:
return [
// 要运行的进程数
'processes' => 10,
// 队列连接设置
'environments' => [
'production' => [
'supervisor-1' => [
'connection' => 'redis',
'queue' => ['default'],
'balance' => 'simple',
'processes' => 10,
],
'supervisor-2' => [
'connection' => 'redis',
'queue' => ['high'],
'balance' => 'simple',
'processes' => 5,
],
],
],
]
ログイン後にコピー
Laravel Horizon の起動-
次のコマンドを使用して Laravel Horizon を起動します:
php artisan horizon
ログイン後にコピー
http://localhost/horizon にアクセスすると、Laravel Horizon の Web インターフェイスが表示されます。
2. IronMQ
IronMQ は、API を介して大量のデータを送受信できる高性能のクラウド メッセージ キュー サービスです。他の主流のメッセージ キュー サービスと比較して、IronMQ はより柔軟で信頼性が高く、複数の言語とオペレーティング システムをサポートし、スケーラブルな機能を備えています。
IronMQ の登録
IronMQ を登録するときは、使用している言語の種類とデータ センターの場所を選択する必要があります。登録後、プロジェクト ID とトークンを取得できるようになります。これらは、Laravel コードで IronMQ キューに接続するために使用されます。
IronMQ のインストール
Laravel プロジェクトで、Composer を使用して IronMQ をインストールします。
composer require iron-io/iron_mq
ログイン後にコピー
IronMQ の構成
プロジェクトでは、.env ファイルに次のパラメーターを追加することで IronMQ を構成できます。
IRON_PROJECT_ID=IronMQ_project_id
IRON_TOKEN=IronMQ_token
IRON_QUEUE_NAME=default
ログイン後にコピー
タスクを IronMQ にプッシュする
Laravel プロジェクトで、プッシュします。次の方法でタスクを IronMQ に送信します。
IronMQ::queue('queue_name')->post($payload);
ログイン後にコピー
ここで、$payload はタスクの内容、queue_name はキューの名前です。
3. Laravel Horizon と IronMQ を使用してキューとタスクを管理する
Laravel Horizon と IronMQ を使用してキューとタスクを管理する一般的なプロセスは次のとおりです:
# #Laravel プロジェクトで、Horizon と IronMQ を構成し、起動します。
- Laravel プロジェクトでは、タスクを IronMQ にプッシュします。タスク データはデータベースに保存することも、その他の方法で生成することもできます。
- Laravel Horizon は IronMQ をポーリングし、キューからタスクを消費します。 Horizon の Web インターフェイスで、タスクの完了やタスクの再試行などのキューのステータスを表示できます。
- タスクの実行中、Laravel Horizon はコードの品質を向上させるのに役立つ多くの便利な手段を提供します。たとえば、Horizon の Web インターフェイスでは、コードの行数やタスクの実行時間などの詳細情報を表示できるため、タスク内の潜在的なパフォーマンスのボトルネックやコードの欠陥を特定できます。
- タスク処理後、必要に応じて、結果を他のシステムにプッシュしたり、固定データを呼び出し側に返すことができます。
- 結論
この記事では、IronMQ を Laravel アプリケーションのキュー サービスとして使用し、Laravel Horizon と組み合わせてキューとタスクを簡単に管理する方法を紹介します。 Laravel Horizon と IronMQ を使用すると、非同期タスクをより効率的に完了でき、タスク実行中に問題をより簡単に検出して解決できます。
以上がLaravel 開発: Laravel Horizon と IronMQ を使用してキューを管理する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。