AssetManager.API/AssetManager.Infrastructure/Services
OpenClaw Agent 5b546061c0 fix: 使用 Lazy 完全解决并发问题
问题分析:
1. GetOrAdd 在并发时可能创建多个 Value
2. 两个请求同时进入 GetPriceAsync,都检查内存缓存未命中
3. 然后同时查数据库,导致连接冲突

解决方案:
1. 使用 Lazy<Task<T>> 确保 Value Factory 只执行一次
2. 把整个流程(查数据库缓存 → 获取价格)放在 Lazy 里
3. 内存缓存命中时快速返回,不进入 Lazy

流程:
- 内存缓存命中 → 直接返回
- 内存缓存未命中 → 进入 Lazy(只执行一次)
  - 查数据库缓存 → 命中则返回
  - 数据库缓存未命中 → 从数据源获取
2026-03-24 10:17:53 +00:00
..
ExchangeRateService.cs fix: 请求收益曲线时自动回填历史数据 2026-03-13 16:21:31 +00:00
IExchangeRateService.cs fix: 请求收益曲线时自动回填历史数据 2026-03-13 16:21:31 +00:00
IMarketDataService.cs fix: 请求收益曲线时自动回填历史数据 2026-03-13 16:21:31 +00:00
MarketDataService.cs fix: 使用 Lazy 完全解决并发问题 2026-03-24 10:17:53 +00:00
MockExchangeRateService.cs fix: 请求收益曲线时自动回填历史数据 2026-03-13 16:21:31 +00:00
MockMarketDataService.cs fix: 请求收益曲线时自动回填历史数据 2026-03-13 16:21:31 +00:00
OkxMarketService.cs fix: 修复编译错误和警告 2026-03-15 13:18:24 +00:00
TencentMarketService.cs fix: 增强腾讯财经解析和日志 2026-03-24 09:52:25 +00:00
TiingoMarketService.cs refactor: 架构优化 P0-P3 2026-03-15 12:54:05 +00:00
YahooMarketService.cs fix: 复用YahooQuotes实例,添加并发限制防止429错误 2026-03-17 06:56:42 +00:00