diff --git a/AssetManager.Infrastructure/Services/MarketDataService.cs b/AssetManager.Infrastructure/Services/MarketDataService.cs index c84b5a0..2a15689 100755 --- a/AssetManager.Infrastructure/Services/MarketDataService.cs +++ b/AssetManager.Infrastructure/Services/MarketDataService.cs @@ -9,7 +9,7 @@ namespace AssetManager.Infrastructure.Services; /// /// 市场数据服务实现(组合模式) /// 数据源优先级: -/// - 实时价格:Yahoo → 腾讯 → Tiingo +/// - 实时价格:腾讯 → Yahoo → Tiingo(腾讯国内稳定,Yahoo 常限流) /// - 历史K线:Yahoo → Tiingo(腾讯历史接口已废弃) /// - 加密货币:OKX /// @@ -154,27 +154,27 @@ public class MarketDataService : IMarketDataService } else { - // 股票:优先Yahoo财经,失败降级腾讯财经,最后降级 Tiingo + // 股票实时价格:优先腾讯财经(国内稳定),失败降级 Yahoo,最后 Tiingo try { - _logger.LogInformation("[数据源] 尝试 Yahoo 获取 {Symbol}", symbol); - response = await _yahooService.GetStockPriceAsync(symbol); - source = "Yahoo"; - _logger.LogInformation("[数据源] Yahoo 成功: {Symbol} = {Price}", symbol, response.Price); + _logger.LogInformation("[数据源] 尝试腾讯获取 {Symbol}", symbol); + response = await _tencentService.GetStockPriceAsync(symbol); + source = "Tencent"; + _logger.LogInformation("[数据源] 腾讯成功: {Symbol} = {Price}", symbol, response.Price); } catch (Exception ex) { - _logger.LogWarning("[数据源] Yahoo 失败: {Symbol}, 错误: {Error}", symbol, ex.Message); + _logger.LogWarning("[数据源] 腾讯失败: {Symbol}, 错误: {Error}", symbol, ex.Message); try { - _logger.LogInformation("[数据源] 降级使用腾讯获取 {Symbol}", symbol); - response = await _tencentService.GetStockPriceAsync(symbol); - source = "Tencent"; - _logger.LogInformation("[数据源] 腾讯成功: {Symbol} = {Price}", symbol, response.Price); + _logger.LogInformation("[数据源] 降级使用 Yahoo 获取 {Symbol}", symbol); + response = await _yahooService.GetStockPriceAsync(symbol); + source = "Yahoo"; + _logger.LogInformation("[数据源] Yahoo 成功: {Symbol} = {Price}", symbol, response.Price); } - catch (Exception tencentEx) + catch (Exception yahooEx) { - _logger.LogWarning("[数据源] 腾讯失败: {Symbol}, 错误: {Error}", symbol, tencentEx.Message); + _logger.LogWarning("[数据源] Yahoo 失败: {Symbol}, 错误: {Error}", symbol, yahooEx.Message); _logger.LogInformation("[数据源] 最后降级使用 Tiingo 获取 {Symbol}", symbol); response = await _tiingoService.GetStockPriceAsync(symbol); source = "Tiingo";