Laravel 開発: Laravel Horizo​​n と IronMQ を使用してキューを管理する方法は?

王林
リリース: 2023-06-17 11:00:00
オリジナル
1730 人が閲覧しました

インターネット ビジネスの継続的な発展に伴い、高い同時実行性と大量のデータ処理がインターネット アプリケーションが直面しなければならない課題となっています。これらの課題に対処するために、Laravel フレームワークではキューを使用して時間のかかるタスクを処理することが一般的なソリューションになりました。この記事では、Laravel Horizo​​n と IronMQ を使用してキューとそのタスクを管理する方法を紹介します。

1. Laravel Horizo​​n

Laravel Horizo​​n は、Laravel が公式に提供するキュー管理ツールで、リアルタイムでキューを表示するのに役立つ使いやすく美しい Web インターフェイスを提供します。 . タスクのステータス、キュー内のタスクの管理、キューの実行ステータスの監視など。さらに、Laravel Horizo​​n は、統計、自動再試行、時間枠制限、キュー内のタスクの例外処理などの強力な機能も提供します。

  1. Laravel Horizo​​n のインストール

Composer を使用して Laravel Horizo​​n をインストールします: 次のコマンドを実行します:

composer require laravel/horizon
ログイン後にコピー
  1. Horizo​​n スクリプトの公開

上記のコマンドを実行した後、次のコマンドを実行して、Laravel Horizo​​n スクリプトをプロジェクトに公開する必要もあります:

php artisan horizon:install
ログイン後にコピー
  1. Laravel Horizo​​n の構成
#Laravel Horizo​​n 構成ファイルは config/horizo​​n.php にあります。このファイルを変更することで Horizo​​n の動作を構成できます。たとえば、構成ファイルに接続とキューの名前を設定します:

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 Horizo​​n の起動
次のコマンドを使用して Laravel Horizo​​n を起動します:

php artisan horizon
ログイン後にコピー

http://localhost/horizo​​n にアクセスすると、Laravel Horizo​​n の 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 Horizo​​n と IronMQ を使用してキューとタスクを管理する

Laravel Horizo​​n と IronMQ を使用してキューとタスクを管理する一般的なプロセスは次のとおりです:

# #Laravel プロジェクトで、Horizo​​n と IronMQ を構成し、起動します。
  1. Laravel プロジェクトでは、タスクを IronMQ にプッシュします。タスク データはデータベースに保存することも、その他の方法で生成することもできます。
  2. Laravel Horizo​​n は IronMQ をポーリングし、キューからタスクを消費します。 Horizo​​n の Web インターフェイスで、タスクの完了やタスクの再試行などのキューのステータスを表示できます。
  3. タスクの実行中、Laravel Horizo​​n はコードの品質を向上させるのに役立つ多くの便利な手段を提供します。たとえば、Horizo​​n の Web インターフェイスでは、コードの行数やタスクの実行時間などの詳細情報を表示できるため、タスク内の潜在的なパフォーマンスのボトルネックやコードの欠陥を特定できます。
  4. タスク処理後、必要に応じて、結果を他のシステムにプッシュしたり、固定データを呼び出し側に返すことができます。
  5. 結論

この記事では、IronMQ を Laravel アプリケーションのキュー サービスとして使用し、Laravel Horizo​​n と組み合わせてキューとタスクを簡単に管理する方法を紹介します。 Laravel Horizo​​n と IronMQ を使用すると、非同期タスクをより効率的に完了でき、タスク実行中に問題をより簡単に検出して解決できます。

以上がLaravel 開発: Laravel Horizo​​n と IronMQ を使用してキューを管理する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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