From 59e25c1648906b614bde3221b256d6b6259c2310 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=90=91=E6=9E=97?= Date: Mon, 13 Feb 2023 14:23:28 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=98=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Connection.php | 18 ++++++++---------- DatabasesProviders.php | 3 +++ 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/Connection.php b/Connection.php index e2f1246..594928b 100644 --- a/Connection.php +++ b/Connection.php @@ -201,10 +201,7 @@ class Connection extends Component */ public function getPdo(): PDO { - if (!Context::hasContext('master:client')) { - Context::setContext('master:client', $this->getMasterClient()); - } - return Context::getContext('master:client'); + return $this->getMasterClient(); } /** @@ -227,7 +224,6 @@ class Connection extends Component $pdo->rollback(); } $this->release($pdo, true); - Context::remove('master:client'); } /** @@ -241,7 +237,6 @@ class Connection extends Component $pdo->commit(); } $this->release($pdo, true); - Context::remove('master:client'); } @@ -265,6 +260,9 @@ class Connection extends Component */ public function release(PDO $pdo, bool $isMaster) { + if (!Context::inCoroutine()) { + return; + } $connections = $this->connection; if (!$isMaster) { $connections->addItem(($this->slaveConfig['cds'] ?? $this->cds) . 'slave', $pdo); @@ -285,8 +283,8 @@ class Connection extends Component { $cds = $this->slaveConfig['cds'] ?? $this->cds; - $this->connection->connection_clear($cds.'master'); - $this->connection->connection_clear($cds.'slave'); + $this->connection->connection_clear($cds . 'master'); + $this->connection->connection_clear($cds . 'slave'); } @@ -297,8 +295,8 @@ class Connection extends Component { $cds = $this->slaveConfig['cds'] ?? $this->cds; - $this->connection->connection_clear($cds.'master'); - $this->connection->connection_clear($cds.'slave'); + $this->connection->connection_clear($cds . 'master'); + $this->connection->connection_clear($cds . 'slave'); } } diff --git a/DatabasesProviders.php b/DatabasesProviders.php index 6b6298b..18d7ed8 100644 --- a/DatabasesProviders.php +++ b/DatabasesProviders.php @@ -57,6 +57,9 @@ class DatabasesProviders extends Providers public function start(OnWorkerStart $start) { + if (!Kiri\Di\Context::inCoroutine()) { + return; + } Timer::tick(60000, function () { $databases = Config::get('databases.connections', []); if (empty($databases)) {