From 20c9e2f8d6be1ea2d5290485c23003d737fed879 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mr=C2=B7x?= Date: Wed, 28 Apr 2021 11:56:19 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B9=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- HttpServer/Events/OnPipeMessage.php | 30 +++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/HttpServer/Events/OnPipeMessage.php b/HttpServer/Events/OnPipeMessage.php index e2c7e493..98b4544b 100644 --- a/HttpServer/Events/OnPipeMessage.php +++ b/HttpServer/Events/OnPipeMessage.php @@ -48,21 +48,23 @@ class OnPipeMessage extends Callback } /** @var Crontab $handler */ $handler = swoole_unserialize($message['handler']); - $handler->increment()->execute(); - if ($handler->isRecover() !== 999) { - return 'success'; - } - $redis = Snowflake::app()->getRedis(); + defer(function () use ($handler) { + if ($handler->isRecover() !== 999) { + return; + } + $redis = Snowflake::app()->getRedis(); - $name = $handler->getName(); - if (!$redis->exists('stop:crontab:' . $name)) { - $redis->set('crontab:' . $name, swoole_serialize($handler)); - $tickTime = time() + $handler->getTickTime(); - $redis->zAdd(Producer::CRONTAB_KEY, $tickTime, $name); - } else { - $redis->del('crontab:' . $name); - $redis->del('stop:crontab:' . $name); - } + $name = $handler->getName(); + if (!$redis->exists('stop:crontab:' . $name)) { + $redis->set('crontab:' . $name, swoole_serialize($handler)); + $tickTime = time() + $handler->getTickTime(); + $redis->zAdd(Producer::CRONTAB_KEY, $tickTime, $name); + } else { + $redis->del('crontab:' . $name); + $redis->del('stop:crontab:' . $name); + } + }); + $handler->increment()->execute(); return 'success'; }