This commit is contained in:
2021-04-27 18:51:34 +08:00
parent c6b7028836
commit 1db9cf4d11
+29 -4
View File
@@ -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