From 1db9cf4d11cfd6e172630f8009f9a4f53444fd19 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mr=C2=B7x?= Date: Tue, 27 Apr 2021 18:51:34 +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 --- Database/Command.php | 33 +++++++++++++++++++++++++++++---- 1 file changed, 29 insertions(+), 4 deletions(-) diff --git a/Database/Command.php b/Database/Command.php index 363f3618..3b59f078 100644 --- a/Database/Command.php +++ b/Database/Command.php @@ -11,9 +11,11 @@ namespace Database; use Exception; +use JetBrains\PhpStorm\Pure; use PDO; use PDOStatement; use Snowflake\Abstracts\Component; +use Snowflake\Core\Json; use Swoole\Coroutine; /** @@ -120,23 +122,46 @@ class Command extends Component */ private function execute($type, $isInsert = null, $hasAutoIncrement = null): int|bool|array|string|null { + $time = microtime(true); try { - $time = microtime(true); if ($type === static::EXECUTE) { $result = $this->insert_or_change($isInsert, $hasAutoIncrement); } else { $result = $this->search($type); } - if (microtime(true) - $time >= 0.02) { + if (microtime(true) - $time >= 0.03) { $this->warning('execute sql Worker.' . env('worker') . '.' . Coroutine::getCid() . '`' . $this->sql . '` use time ' . (microtime(true) - $time)); } - return $result; } catch (\Throwable $exception) { - return $this->addError($this->sql . '. error: ' . $exception->getMessage(), 'mysql'); + $message = $this->sql . '. error: ' . $exception->getMessage(); + + $result = $this->addError($message, 'mysql'); + } finally { + return $this->setExecuteLog($time, $result); } } + /** + * @param $time + * @param $result + * @return mixed + * @throws Exception + */ + #[Pure] private function setExecuteLog($time, $result): mixed + { + $export['sql'] = $this->sql; + $export['param'] = $this->params; + $export['startTime'] = $time; + $export['endTime'] = microtime(true); + $export['time'] = $export['endTime'] - $time; + + logger()->debug(Json::encode($export), 'mysql'); + + return $result; + } + + /** * @param $type * @return mixed