补单/轮询日志收敛:只有报错或真正补到单/有数据才写debug.log,无合适数据静默返回

- poller_online.php:去掉每次轮询必写的「补单开始/正在连接MySQL/MySQL DSN/连接成功」4 行;「补单完成」改为 processed>0 才写;连接失败、补单处理、交易写入等成功/报错日志保留
- sync.php:checkWebLoginConfirmations、checkPendingWebLogins 的 count=0 轮询日志改为有数据才写(每 4 秒一次是膨胀主因);check_web_login_verified 去掉「插件查询/未找到/无验证记录」三条无数据日志;三处 catch 补 debugLog 让报错进 debug.log
This commit is contained in:
ypsdf1
2026-10-05 14:40:31 +08:00
parent 1bd51cbcdf
commit d2f42bef62
2 changed files with 29 additions and 17 deletions
+10 -10
View File
@@ -114,20 +114,15 @@ function getPlatformDB() {
$user = defined('PAY_MYSQL_USER') ? PAY_MYSQL_USER : 'hbye3AezRNk4r7YA';
$pass = defined('PAY_MYSQL_PASS') ? PAY_MYSQL_PASS : '5HtD7Rn3seRAn2BE';
debugLog('[poller] 正在连接平台MySQL...', [
'host' => $host,
'db' => $dbname,
'user' => $user,
]);
// ★ 2026-10-05 日志收敛:连接过程(正在连接/DSN/连接成功)属于每次轮询的
// 常规路径,一律不写日志——补单器约 20 秒跑一次,这 3 行是 debug.log
// 膨胀的元凶之一。只有下面 catch 的"连接失败"(报错)才写日志。
$start = microtime(true);
$dsn = "mysql:host=$host;dbname=$dbname;charset=utf8mb4";
debugLog('[poller] MySQL DSN: ' . $dsn);
$pdo = new PDO($dsn, $user, $pass, [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_TIMEOUT => 15,
]);
$elapsed = round((microtime(true) - $start) * 1000);
debugLog("[poller] MySQL连接成功", ['elapsed_ms' => $elapsed]);
return $pdo;
} catch (\Throwable $e) {
$elapsed = round((microtime(true) - ($start ?? microtime(true))) * 1000);
@@ -172,7 +167,8 @@ function pollerAcquireLock() {
function pollPaidOrders() {
global $PLATFORM_DB_PREFIX;
$startTime = microtime(true);
debugLog('[poller] 补单开始');
// ★ 2026-10-05 日志收敛:不再无条件写"补单开始"。没有合适订单时下面直接
// 静默 return(只回 JSON,不写日志);只有真正补到单(成功)或出错才写。
// 并发保护:已有补单进程在跑则直接跳过,杜绝重复补单
if (!pollerAcquireLock()) {
@@ -320,7 +316,11 @@ function pollPaidOrders() {
}
$elapsed = round((microtime(true) - $startTime) * 1000);
debugLog('[poller] 补单完成', ['processed' => $processed, 'skipped' => $skipped, 'elapsed_ms' => $elapsed]);
// ★ 2026-10-05 日志收敛:只在本轮真正补到单(processed > 0)时写"补单完成";
// 没有实际补单动作则静默,不再每轮刷一条。
if ($processed > 0) {
debugLog('[poller] 补单完成', ['processed' => $processed, 'skipped' => $skipped, 'elapsed_ms' => $elapsed]);
}
echo json_encode([
'result' => 'ok',