
GaoYiYuan_0626andWorkBuddy
4fd2ec05c8
基金转换 T-4+T-5(并行组 A):convert_repository 代理侧 + locks.try_lock 非阻塞抢锁
T-4(convert_repository · agent 库 risk_convert_detail):
- 新增 7 方法:insert_placeholder(占位 pending) / complete_convert(回写 completed+折算详情)
/ mark_failed / get_by_group_id / get_by_client_request_id(None 直接返回 None)
/ list_expired_candidates(hours) / mark_expired(S2 标记不硬删)
- 引擎走 agent 库 rw(D20);status 5 值枚举;不与 risk_repository 混职责
- Decimal 折算字段经 _to_bind 转 float 绑定(sqlite 不支持直接绑 Decimal,同 T-3)
T-5(locks.try_lock):
- 单次非阻塞抢锁:抢到返回 _Token(with 进入 True),抢不到立即 _NoLock(进入 False,不等不降级)
- Redis 不可用退回进程内 Lock.acquire(blocking=False);_NoLock.__enter__ 返回 False 避免 with None 报错
- 不改 run_locked(D4:其等 2s 后降级 fn(False),语义相反;3 处调用点零改动)
测试:test_convert_repository.py 6 用例 + test_locks_redis.py +4 用例(既有 6 例零改动)
pytest 全量 634 passed / 3 skipped(基线 624 + 10,零回归)
Co-Authored-By: WorkBuddy <workbuddy@tencent.com>
2026-09-10 15:53:31 +08:00
..
2026-09-10 14:45:55 +08:00
2026-09-10 14:45:55 +08:00
2026-09-07 19:53:39 +08:00
2026-09-07 02:34:57 +08:00
2026-09-06 23:37:03 +08:00
2026-09-07 01:59:15 +08:00
2026-09-09 18:10:03 +08:00
2026-09-07 18:28:18 +08:00
2026-09-07 03:03:12 +08:00
2026-09-07 11:55:24 +08:00
2026-09-08 14:23:33 +08:00
2026-09-10 14:45:55 +08:00
2026-09-08 14:07:38 +08:00
2026-09-10 14:45:55 +08:00
2026-09-10 14:45:55 +08:00
2026-09-10 15:53:31 +08:00
2026-09-06 23:37:03 +08:00
2026-09-10 14:45:55 +08:00
2026-09-07 01:02:12 +08:00
2026-09-06 15:09:14 +08:00
2026-09-07 11:46:24 +08:00
2026-09-07 19:28:04 +08:00
2026-09-07 11:16:15 +08:00
2026-09-07 11:16:15 +08:00
2026-09-07 17:49:39 +08:00
2026-09-07 12:05:36 +08:00
2026-09-10 15:53:31 +08:00
2026-09-08 14:23:33 +08:00
2026-09-07 11:49:43 +08:00
2026-09-07 18:28:18 +08:00
2026-09-06 23:37:03 +08:00
2026-09-07 12:01:45 +08:00
2026-09-07 19:28:04 +08:00
2026-09-07 17:39:04 +08:00
2026-09-06 23:37:03 +08:00
2026-09-07 17:34:32 +08:00
2026-09-07 19:05:02 +08:00
2026-09-07 17:34:32 +08:00
2026-09-10 15:42:55 +08:00
2026-09-07 17:42:55 +08:00
2026-09-06 15:09:14 +08:00
2026-09-07 17:34:32 +08:00