参考文献作者堆叠
参考文献相关性检测 作者ai写作辅助检测工作
This commit is contained in:
55
application/common/DbReconnectHelper.php
Normal file
55
application/common/DbReconnectHelper.php
Normal file
@@ -0,0 +1,55 @@
|
||||
<?php
|
||||
|
||||
namespace app\common;
|
||||
|
||||
use think\Db;
|
||||
|
||||
/**
|
||||
* 长耗时任务(HTTP 拉摘要、LLM)前后释放/重建 MySQL 连接,避免 Windows errno=10053
|
||||
*/
|
||||
class DbReconnectHelper
|
||||
{
|
||||
public static function release()
|
||||
{
|
||||
try {
|
||||
Db::close();
|
||||
} catch (\Throwable $e) {
|
||||
// ignore
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 确保当前进程可用数据库连接(断线则强制重连)
|
||||
*/
|
||||
public static function ensure()
|
||||
{
|
||||
if (self::ping()) {
|
||||
return true;
|
||||
}
|
||||
|
||||
self::release();
|
||||
|
||||
return self::reconnect();
|
||||
}
|
||||
|
||||
private static function ping()
|
||||
{
|
||||
try {
|
||||
Db::query('SELECT 1');
|
||||
return true;
|
||||
} catch (\Throwable $e) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
private static function reconnect()
|
||||
{
|
||||
try {
|
||||
Db::connect(config('database'), true);
|
||||
Db::query('SELECT 1');
|
||||
return true;
|
||||
} catch (\Throwable $e) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user