PHP はどのようにして Redis メッセージ サブスクリプションを継続的にリッスンし、キュー タスクを処理するのでしょうか?
実際の Web 開発では、キュー タスクを処理する必要がある場面がよくありますが、Redis は一般的に使用される高性能な Key-Value ストレージ システムであり、Pub/Sub モードを提供しているため、簡単に公開できます。そしてメッセージを購読します。この記事では、PHP を使用して Redis メッセージ サブスクリプションを継続的にリッスンし、キュー タスクを処理する方法を紹介します。
まず、Redis 拡張機能と Composer パッケージ管理ツールがインストールされていることを確認する必要があります。ターミナルで次のコマンドを実行して、Redis 拡張機能と Composer をインストールします。
pecl install redis curl -sS https://getcomposer.org/installer | php mv composer.phar /usr/local/bin/composer
次に、プロジェクト ディレクトリにcomposer.json ファイルを作成し、次の依存関係を追加する必要があります。
{ "require": { "predis/predis": "^1.1" } }
次に、次のコマンドを実行して依存関係をインストールします:
composer install
次に、Redis キューにメッセージをパブリッシュするために pub.php ファイルを作成する必要があります:
<?php require 'vendor/autoload.php'; use PredisClient; // 创建Redis客户端 $client = new Client(); // 发布消息到队列 $client->publish('queue', 'message');
上記のコードを pub に保存できます。 .php ファイルを開き、ターミナルで php pub.php を実行して、メッセージを Redis キューにパブリッシュします。
次に、Redis キューをリッスンしてキュー タスクを処理するための sub.php ファイルを作成する必要があります。
<?php require 'vendor/autoload.php'; use PredisClient; // 创建Redis客户端 $client = new Client(); // 监听队列 $client->pubSubLoop(function ($redis, $channel, $message) { // 处理队列任务 if ($message->kind === 'message' && $channel === 'queue') { echo $message->payload . " "; // 在这里处理队列任务的逻辑 // ... } });
上記のコードを sub.php ファイルに保存して実行できます。ターミナルで php sub.php を実行して、Redis キューを継続的に監視します。
デモンストレーションの便宜上、pub.php ファイルの公開メソッドのループで複数のメッセージを Redis キューに送信できます。
<?php require 'vendor/autoload.php'; use PredisClient; // 创建Redis客户端 $client = new Client(); // 循环发送消息到队列 for ($i = 0; $i < 10; $i++) { // 发布消息到队列 $client->publish('queue', 'message ' . $i); }
次に、php sub.php を実行します。 Redis キューを継続的にリッスンし、別のターミナル ウィンドウで php pub.php を実行して、複数のメッセージを Redis キューにパブリッシュします。
上記の手順により、PHP を使用して Redis メッセージ サブスクリプションを継続的に監視し、キュー タスクを処理できます。実際のアプリケーションでは、ニーズに応じてキュータスクの処理ロジックを拡張および最適化し、さまざまなビジネスニーズに対応できます。この記事がお役に立てば幸いです!
以上がPHP はどのようにして Redis メッセージ サブスクリプションを継続的にリッスンし、キュー タスクを処理するのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。