diff --git a/RpcJsonp.php b/RpcJsonp.php index a455e48..75136c5 100644 --- a/RpcJsonp.php +++ b/RpcJsonp.php @@ -28,7 +28,6 @@ use Kiri\Server\Events\OnWorkerStart; use Psr\Container\ContainerExceptionInterface; use Psr\Container\ContainerInterface; use Psr\Container\NotFoundExceptionInterface; -use Kiri\Consul\Catalog\Catalog; use Psr\Http\Message\ServerRequestInterface; use ReflectionException; use Swoole\Coroutine; @@ -96,14 +95,19 @@ class RpcJsonp extends Component implements OnConnectInterface, OnReceiveInterfa */ public function onBeforeShutdown(OnBeforeShutdown $beforeShutdown): void { - $agent = $this->container->get(Catalog::class); + if ($beforeShutdown->server->worker_id != 0) { + return; + } + $agent = $this->container->get(Agent::class); $value = Config::get("rpc.consul", []); if (empty($value)) { return; } $this->logger->debug("disconnect consul."); - $agent->deregister(["node" => $value['ID']]); + + $agent->service->deregister($value['ID']); + $agent->checks->deregister($value['Check']['CheckId']); }