From 0b3310b82e67152c364634e28ce974d7b5fcb84d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=90=91=E6=9E=97?= Date: Fri, 14 Jan 2022 11:29:16 +0800 Subject: [PATCH] =?UTF-8?q?Revert=20"=E6=94=B9=E5=90=8D"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit fdf58326 --- RpcJsonp.php | 46 +++++++++++++++++++++++++++------------------- 1 file changed, 27 insertions(+), 19 deletions(-) diff --git a/RpcJsonp.php b/RpcJsonp.php index 2af755c..b4fd0df 100644 --- a/RpcJsonp.php +++ b/RpcJsonp.php @@ -2,30 +2,29 @@ namespace Kiri\Rpc; +use Kiri; +use Kiri\Abstracts\Component; +use Kiri\Abstracts\Config; +use Kiri\Annotation\Annotation; +use Kiri\Annotation\Inject; +use Kiri\Consul\Agent; +use Kiri\Context; +use Kiri\Exception\ConfigException; use Kiri\Message\Constrict\RequestInterface; use Kiri\Message\Handler\Handler; use Kiri\Message\Handler\Router; use Kiri\Message\ServerRequest; -use Kiri\Abstracts\Component; -use Kiri\Abstracts\Config; -use Kiri\Consul\Agent; -use Kiri\Context; -use Kiri\Events\EventProvider; -use Kiri\Exception\ConfigException; -use Kiri; -use Kiri\Annotation\Inject; -use Kiri\Annotation\Annotation; -use Psr\Container\ContainerExceptionInterface; -use Psr\Container\NotFoundExceptionInterface; -use Psr\Http\Message\ServerRequestInterface; -use ReflectionException; use Kiri\Server\Contract\OnCloseInterface; use Kiri\Server\Contract\OnConnectInterface; use Kiri\Server\Contract\OnReceiveInterface; use Kiri\Server\Events\OnBeforeShutdown; use Kiri\Server\Events\OnServerBeforeStart; use Kiri\Server\Events\OnTaskerStart; +use Kiri\Server\Events\OnWorkerExit; use Kiri\Server\Events\OnWorkerStart; +use Psr\Container\ContainerExceptionInterface; +use Psr\Container\NotFoundExceptionInterface; +use Psr\Http\Message\ServerRequestInterface; use Swoole\Coroutine; use Swoole\Coroutine\Channel; use Swoole\Server; @@ -47,9 +46,11 @@ class RpcJsonp extends Component implements OnConnectInterface, OnReceiveInterfa public Annotation $annotation; - private RpcManager $manager; + + private int $timerId; + /** * * @throws \Exception @@ -61,6 +62,7 @@ class RpcJsonp extends Component implements OnConnectInterface, OnReceiveInterfa scan_directory(APP_PATH . 'rpc', 'app\Rpc'); $this->eventProvider->on(OnWorkerStart::class, [$this, 'consulWatches']); + $this->eventProvider->on(OnWorkerExit::class, [$this, 'onWorkerExit']); $this->eventProvider->on(OnServerBeforeStart::class, [$this, 'register']); $this->manager = Kiri::getDi()->get(RpcManager::class); @@ -94,16 +96,22 @@ class RpcJsonp extends Component implements OnConnectInterface, OnReceiveInterfa return; } $async_time = (int)Config::get('consul.async_time', 1000); - Timer::tick($async_time, static function ($timeId) { - if (env('state', 'start') == 'exit') { - Timer::clear($timeId); - return; - } + $this->timerId = Timer::tick($async_time, static function () { Kiri::getDi()->get(RpcManager::class)->tick(); }); } + /** + * @param OnWorkerExit $exit + * @return void + */ + public function onWorkerExit(OnWorkerExit $exit) + { + Timer::clear($this->timerId); + } + + /** * @param OnServerBeforeStart $server */