PHP7 の Reid キー空間通知は TP5 と連携して分散遅延タスクを実装します

藏色散人
リリース: 2023-02-17 12:04:02
転載
2959 人が閲覧しました

この記事では分散遅延タスクを実装するためのReidsキースペース通知とTP5を中心に紹介しますので、困っている友人の参考になれば幸いです!

PHP7 の Reid キー空間通知は TP5 と連携して分散遅延タスクを実装します

テスト環境: Windows 10 phpStudy

redis 構成ファイル redis.windows.conf

notify-keyspace-events "Ex"
ログイン後にコピー

redis サービスを再起動

PHP7 の Reid キー空間通知は TP5 と連携して分散遅延タスクを実装します

##コンソール ウィンドウを再度開き、コマンド

psubscribe __keyevent@0__:expired
ログイン後にコピー

新しいウィンドウを開き、サブスクリプション操作をブロックした後にターミナルを実行します。しばらくすると、情報が表示されます出力:

C:\Users\admin>redis-cli 127.0.0.1:6379> psubscribe __keyevent@0__:expired Reading messages... (press Ctrl-C to quit) 1) "psubscribe" 2) "__keyevent@0__:expired" 3) (integer) 1
ログイン後にコピー

別のターミナルを開き、redis-cli で redis を入力し、6 秒で期限切れになるキーのユーザー名を追加します:


PHP7 の Reid キー空間通知は TP5 と連携して分散遅延タスクを実装します

コマンド ラインが完了しました

2. TP5 .1 コマンド ライン ツールを使用します。

コマンド ライン ツールの使用: https://www.kancloud.cn/manual/thinkphp5_1/354146

1.新しいコマンドライン pay

setName('pay') ->addArgument('type', Argument::REQUIRED, "the type of the task that pay needs to run") ->setDescription('this is payment system command line tools'); } // 执行指令 public function execute(Input $input, Output $output) { $type = $input->getArgument('type'); if ($type == 'psubscribe') { // 发布订阅任务 $this->psubscribe(); } } /** * Redis 发布订阅模式 */ private function psubscribe() { $service = new RedisSubscribe(); $service->sub(); } }
ログイン後にコピー

2. スクリプト RedisSubscribe.php

setOption(\Redis::OPT_READ_TIMEOUT, -1); $redis->psubscribe(array('__keyevent@0__:expired'), function ($redis, $pattern, $chan, $msg) { Log::error('[1]--过期事件的订阅 ' . $msg); }); } }
ログイン後にコピー

を作成します 説明: psubscribe(patterns, pattern, callback) メソッドの 2 番目のパラメーターはコールバック関数です。クロージャをコールバックとして使用します。

公式説明: クロージャとも呼ばれる匿名関数を使用すると、名前を指定せずに関数を一時的に作成できます。コールバック関数の引数として最も一般的に使用される値。もちろん、他のアプリケーションもあります。

3. TP5 プロジェクトのルート ディレクトリにある有料コマンド ツールを実行します

php think pay psubscribe
ログイン後にコピー

4. 新しいコンソール ウィンドウのターミナルを開きます

C:\Users\admin>redis-cli 127.0.0.1:6379> setex UserName 10 Tinywan OK 127.0.0.1:6379> get UserName "Tinywan" 127.0.0.1:6379> get UserName (nil) 127.0.0.1:6379>
ログイン後にコピー
5. ログ ファイルを確認します。期限切れのキーを受信したかどうかを確認してください

PHP7 の Reid キー空間通知は TP5 と連携して分散遅延タスクを実装します

6。最終結果は次のとおりです。

PHP7 の Reid キー空間通知は TP5 と連携して分散遅延タスクを実装します

より高度でゆっくりとしたものです。 Expand

1. 注文を自動的にキャンセルする

2. 注文完了後にテキスト メッセージを送信する

3. タスクを遅らせるなど

関連する推奨事項: 「

PHP7 チュートリアル

以上がPHP7 の Reid キー空間通知は TP5 と連携して分散遅延タスクを実装しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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