ホームページ  >  記事  >  PHPフレームワーク  >  ThinkPHP6を使用してメッセージキューを実装する

ThinkPHP6を使用してメッセージキューを実装する

PHPz
PHPzオリジナル
2023-06-21 17:51:392749ブラウズ

インターネットとビッグ データ時代の到来により、メッセージ キューはビジネス開発とデータ処理に不可欠な部分になりました。 PHP の分野では、ThinkPHP フレームワークは開発者の間で常に人気のある選択肢です。この記事では、ThinkPHP6 を使用してメッセージ キューを実装する方法を紹介し、いくつかの実用的なコード例を示します。

  1. メッセージ キュー拡張機能のインストール

メッセージ キューの作成を開始する前に、メッセージ キュー拡張機能 (RabbitMQ や Beanstalkd など) をインストールする必要があります。

1.1 Erlang のインストール

RabbitMQ は Erlang 言語で開発されているため、最初に Erlang をインストールする必要があります。

1.2 RabbitMQ のインストール

RabbitMQ をインストールする前に、最初に wget および gnupg ツールをインストールする必要があります。ターミナルで次のコマンドを実行します:

sudo apt-get install wget gnupg -y

次に、RabbitMQ をダウンロードしてインストールします。 :

wget -O - "https://packagecloud.io/rabbitmq/rabbitmq-server/gpgkey" | sudo apt-key add -
sudo tee /etc/apt/sources.list.d/bintray.rabbitmq.list <<EOF
deb https://dl.bintray.com/rabbitmq-erlang/debian buster erlang
deb https://dl.bintray.com/rabbitmq/debian buster main
EOF
sudo apt-get update -y
sudo apt-get install rabbitmq-server -y
  1. キューとコンシューマの作成

ThinkPHP6 では、Worker (ワーカー プロセス) を使用してキューとコンシューマを作成できます。具体的な手順は次のとおりです:

2.1 ワーカー モードをオンにする

config ディレクトリの app.php ファイルで、次のコード セグメントを見つけます:

    'worker' => [
        'type'  => 'socket',   // 驱动方式
        'host'  => '0.0.0.0',  // 监听地址
        'port'  => 2345,       // 监听端口
    ],

これを次の内容に変更します:

    'worker' => [
        'type'      => 'rabbitmq',
        'host'      => 'localhost',
        'port'      => 5672,
        'user'      => 'guest',
        'password'  => 'guest',
        'vhost'     => '/',
        'exchange'  => 'test',  // 交换机名称
        'queue'     => 'test',  // 队列名称
    ],

ここにドライバーがあります。モードが Rabbitmq に変更され、RabbitMQ 接続の関連構成情報 (ローカル アドレス、ユーザー名、パスワードなど) およびスイッチとキューの名前が指定されます。

2.2 メッセージ プロデューサーの作成

アプリ ディレクトリに Task という名前のコントローラーを作成します。メソッドは send と呼ばれます。コードは次のとおりです:

namespace appcontroller;

use thinkworkerServer;

class Task extends Server
{
    public function send()
    {
        $data = ['name'=>'ThinkPHP','score'=>100];
        $this->worker->push(json_encode($data));
    }
}

ここでは、Json を使用しますデータはメッセージ キューにプッシュされます。

2.3 メッセージ コンシューマーの作成

アプリ ディレクトリに Worker という名前のコントローラーを作成します。メソッドの名前は onMessage です。コードは次のとおりです。

namespace appcontroller;

use thinkworkerServer;

class Worker extends Server
{
    public function onMessage($connection, $data)
    {
        // 处理逻辑
    }
}

onMessage メソッド内, 受信したメッセージを処理するロジックをカスタマイズできます。たとえば、データを解析してデータベースに保存し、テキスト メッセージや電子メール通知をユーザーに送信できます。

  1. ワーカーの実行

上記の構成が完了したら、ターミナルで次のコマンドを実行するだけでワーカー モードを開始できます:

php think worker:server
  1. メッセージ キューのテスト

メッセージ キューをテストするときは、2 つの端末を開くことができます。

最初の端末で次のコマンドを実行して、メッセージをキューにプッシュします:

curl http://localhost:2345/task/send

2 番目の端末で次のコマンドを実行して、受信したメッセージを確認します:

php think worker:client

この記事では、ThinkPHP6 を使用してメッセージ キューを実装する方法を紹介します。開発者が大規模なデータ処理や非同期タスクの実行などをより迅速に処理できるようになり、アプリケーションのパフォーマンスと安定性が向上します。

以上がThinkPHP6を使用してメッセージキューを実装するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。