refactor: 调整实时价格数据源优先级
调整: - 实时价格:腾讯 → Yahoo → Tiingo - 历史K线:Yahoo → Tiingo(不变) 原因: - Yahoo 经常 429 限流 - 腾讯财经对国内用户更稳定 - 腾讯支持美股 ETF(如 UPRO、TMF)
This commit is contained in:
parent
f2105eeb3a
commit
39808c6d5d
@ -9,7 +9,7 @@ namespace AssetManager.Infrastructure.Services;
|
||||
/// <summary>
|
||||
/// 市场数据服务实现(组合模式)
|
||||
/// <para>数据源优先级:</para>
|
||||
/// <para>- 实时价格:Yahoo → 腾讯 → Tiingo</para>
|
||||
/// <para>- 实时价格:腾讯 → Yahoo → Tiingo(腾讯国内稳定,Yahoo 常限流)</para>
|
||||
/// <para>- 历史K线:Yahoo → Tiingo(腾讯历史接口已废弃)</para>
|
||||
/// <para>- 加密货币:OKX</para>
|
||||
/// </summary>
|
||||
@ -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);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_logger.LogWarning("[数据源] Yahoo 失败: {Symbol}, 错误: {Error}", symbol, ex.Message);
|
||||
try
|
||||
{
|
||||
_logger.LogInformation("[数据源] 降级使用腾讯获取 {Symbol}", symbol);
|
||||
_logger.LogInformation("[数据源] 尝试腾讯获取 {Symbol}", symbol);
|
||||
response = await _tencentService.GetStockPriceAsync(symbol);
|
||||
source = "Tencent";
|
||||
_logger.LogInformation("[数据源] 腾讯成功: {Symbol} = {Price}", symbol, response.Price);
|
||||
}
|
||||
catch (Exception tencentEx)
|
||||
catch (Exception ex)
|
||||
{
|
||||
_logger.LogWarning("[数据源] 腾讯失败: {Symbol}, 错误: {Error}", symbol, tencentEx.Message);
|
||||
_logger.LogWarning("[数据源] 腾讯失败: {Symbol}, 错误: {Error}", symbol, ex.Message);
|
||||
try
|
||||
{
|
||||
_logger.LogInformation("[数据源] 降级使用 Yahoo 获取 {Symbol}", symbol);
|
||||
response = await _yahooService.GetStockPriceAsync(symbol);
|
||||
source = "Yahoo";
|
||||
_logger.LogInformation("[数据源] Yahoo 成功: {Symbol} = {Price}", symbol, response.Price);
|
||||
}
|
||||
catch (Exception yahooEx)
|
||||
{
|
||||
_logger.LogWarning("[数据源] Yahoo 失败: {Symbol}, 错误: {Error}", symbol, yahooEx.Message);
|
||||
_logger.LogInformation("[数据源] 最后降级使用 Tiingo 获取 {Symbol}", symbol);
|
||||
response = await _tiingoService.GetStockPriceAsync(symbol);
|
||||
source = "Tiingo";
|
||||
|
||||
Loading…
Reference in New Issue
Block a user