fix(通道流量阈值): AUG26-011 修复周期处理连接池自锁并补齐根池句柄验证与文档
Some checks failed
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Has been cancelled

This commit is contained in:
2026-09-16 16:59:32 +08:00
parent 15bbb953db
commit ef4d3696d4
4 changed files with 22 additions and 7 deletions

View File

@@ -124,6 +124,8 @@ func (s *Service) processDueLock(ctx context.Context, item *DueLock, stats *Cycl
// 只解锁不写复机事件、不调运营商:配置缺失时无法判断是否已跨期,解除通道锁交由既有复机链路
// 与人工决定anomaly_flag 与失败原因使运维可见并转人工核对。解锁与异常标记都是条件更新,
// 重复执行不会产生第二次副作用。
// 两者 MUST 共用同一个事务句柄:解锁已持有该行锁,若异常标记改走服务自身连接池,另一条连接
// 会等待本事务的行锁(自锁),处理将挂死到语句超时并使该 cron 每分钟空转。
func (s *Service) processUnresolvableLock(ctx context.Context, item *DueLock, stats *CycleStats) error {
lock := &item.Lock
s.logger.Warn("通道阈值锁行周期归属不可判定,解锁并转人工核对",
@@ -139,7 +141,7 @@ func (s *Service) processUnresolvableLock(ctx context.Context, item *DueLock, st
return nil
}
unlocked = true
_, anomalyErr := s.markAnomaly(ctx, lock.ID, item.Reason)
_, anomalyErr := s.markAnomalyInTx(ctx, tx, lock.ID, item.Reason)
return anomalyErr
})
if err != nil {