From 12610c218c8346fa9f3b82fa59fd6b000e1b069a Mon Sep 17 00:00:00 2001 From: Administrator Date: Tue, 4 Jan 2022 00:07:14 +0800 Subject: [PATCH] 1 --- kiri-engine/Cache/Redis.php | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/kiri-engine/Cache/Redis.php b/kiri-engine/Cache/Redis.php index bb0cb632..7b6bf4be 100644 --- a/kiri-engine/Cache/Redis.php +++ b/kiri-engine/Cache/Redis.php @@ -19,6 +19,7 @@ use Kiri\Kiri; use Kiri\Pool\Redis as PoolRedis; use Note\Inject; use Server\Events\OnWorkerExit; +use Swoole\Timer; /** * Class Redis @@ -80,6 +81,25 @@ class Redis extends Component } + /** + * @param $key + * @param int $timeout + * @return bool + */ + public function waite($key, int $timeout = 5): bool + { + $time = time(); + while (!$this->setNx($key, 1)) { + if (time()- $time >= $timeout){ + return FALSE; + } + usleep(1000); + } + $this->expire($key, $timeout); + return TRUE; + } + + /** * @param $key * @param int $timeout