This commit is contained in:
2021-04-27 18:49:01 +08:00
parent 78bed4b637
commit f74e40cc79
+4 -32
View File
@@ -11,13 +11,9 @@ namespace Database;
use Exception;
use JetBrains\PhpStorm\Pure;
use PDO;
use PDOStatement;
use Snowflake\Abstracts\Component;
use Snowflake\Core\Json;
use Snowflake\Error\LoggerProcess;
use Snowflake\Snowflake;
use Swoole\Coroutine;
/**
@@ -124,49 +120,25 @@ 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.03) {
if (microtime(true) - $time >= 0.02) {
$this->warning('execute sql Worker.' . env('worker') . '.' . Coroutine::getCid() . '`' . $this->sql . '` use time ' . (microtime(true) - $time));
}
return $result;
} catch (\Throwable $exception) {
$message = $this->sql . '. error: ' . $exception->getMessage();
$result = $this->addError($message, 'mysql');
} finally {
return $this->setExecuteLog($time, $result);
return $this->addError($message, 'mysql');
}
}
/**
* @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;
/** @var LoggerProcess $logger */
$logger = Snowflake::getApp(LoggerProcess::class);
$logger->write(Json::encode([Json::encode($export), 'mysql']));
return $result;
}
/**
* @param $type
* @return mixed