This commit is contained in:
2023-02-13 14:23:28 +08:00
parent 97d8f8fac5
commit 59e25c1648
2 changed files with 11 additions and 10 deletions
+8 -10
View File
@@ -201,10 +201,7 @@ class Connection extends Component
*/ */
public function getPdo(): PDO public function getPdo(): PDO
{ {
if (!Context::hasContext('master:client')) { return $this->getMasterClient();
Context::setContext('master:client', $this->getMasterClient());
}
return Context::getContext('master:client');
} }
/** /**
@@ -227,7 +224,6 @@ class Connection extends Component
$pdo->rollback(); $pdo->rollback();
} }
$this->release($pdo, true); $this->release($pdo, true);
Context::remove('master:client');
} }
/** /**
@@ -241,7 +237,6 @@ class Connection extends Component
$pdo->commit(); $pdo->commit();
} }
$this->release($pdo, true); $this->release($pdo, true);
Context::remove('master:client');
} }
@@ -265,6 +260,9 @@ class Connection extends Component
*/ */
public function release(PDO $pdo, bool $isMaster) public function release(PDO $pdo, bool $isMaster)
{ {
if (!Context::inCoroutine()) {
return;
}
$connections = $this->connection; $connections = $this->connection;
if (!$isMaster) { if (!$isMaster) {
$connections->addItem(($this->slaveConfig['cds'] ?? $this->cds) . 'slave', $pdo); $connections->addItem(($this->slaveConfig['cds'] ?? $this->cds) . 'slave', $pdo);
@@ -285,8 +283,8 @@ class Connection extends Component
{ {
$cds = $this->slaveConfig['cds'] ?? $this->cds; $cds = $this->slaveConfig['cds'] ?? $this->cds;
$this->connection->connection_clear($cds.'master'); $this->connection->connection_clear($cds . 'master');
$this->connection->connection_clear($cds.'slave'); $this->connection->connection_clear($cds . 'slave');
} }
@@ -297,8 +295,8 @@ class Connection extends Component
{ {
$cds = $this->slaveConfig['cds'] ?? $this->cds; $cds = $this->slaveConfig['cds'] ?? $this->cds;
$this->connection->connection_clear($cds.'master'); $this->connection->connection_clear($cds . 'master');
$this->connection->connection_clear($cds.'slave'); $this->connection->connection_clear($cds . 'slave');
} }
} }
+3
View File
@@ -57,6 +57,9 @@ class DatabasesProviders extends Providers
public function start(OnWorkerStart $start) public function start(OnWorkerStart $start)
{ {
if (!Kiri\Di\Context::inCoroutine()) {
return;
}
Timer::tick(60000, function () { Timer::tick(60000, function () {
$databases = Config::get('databases.connections', []); $databases = Config::get('databases.connections', []);
if (empty($databases)) { if (empty($databases)) {