• shaw's avatar
    fix(concurrency): 重构并发管理使用独立Key+原生TTL · e65e9587
    shaw authored
    问题:旧方案使用计数器模式,每次acquire都刷新TTL,导致僵尸数据永不过期
    
    解决方案:
    - 每个槽位使用独立Redis Key: concurrency:account:{id}:{requestID}
    - 利用Redis原生TTL,每个槽位独立5分钟过期
    - 服务崩溃后僵尸数据自动清理,无需手动干预
    - 兼容多实例K8s部署
    
    技术改动:
    - 新增SCAN脚本统计活跃槽位数量
    - 移除冗余的releaseScript,直接使用DEL命令
    - Wait队列TTL只在首次创建时设置,避免刷新
    e65e9587
concurrency_cache.go 1.18 KB