根因分析: - MarketDataRepository 使用注入的 ISqlSugarClient(Scoped) - 多个 Task.Run 并发调用 SavePriceCacheAsync - Storageable 操作使用同一个 SqlSugarScope 实例 - 连接在 await 边界被复用 → 冲突 正确方案: - SavePriceCacheAsync 每次创建新的 SqlSugarClient 实例 - MySQL 连接池会复用底层 TCP 连接,性能开销很小 - 不再需要 SemaphoreSlim 锁 优点: - 完全避免连接冲突 - 代码更简洁 - 并发写入无限制 |
||
|---|---|---|
| .. | ||
| Services | ||
| StrategyEngine | ||
| AssetManager.Infrastructure.csproj | ||