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

PHPz
リリース: 2023-06-21 17:51:39
オリジナル
2798 人が閲覧しました

インターネットとビッグ データ時代の到来により、メッセージ キューはビジネス開発とデータ処理に不可欠な部分になりました。 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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!