优化行情缓存策略:美股交易时段缓存15分钟,非交易时段缓存24小时,节省API配额

This commit is contained in:
claw_bot 2026-03-12 03:33:03 +00:00
parent 9936cbc7f2
commit 7685782bb4

View File

@ -428,12 +428,20 @@ public class MarketDataService : IMarketDataService
/// </summary>
private DateTime GetCacheExpirationTime(string assetType)
{
return assetType.ToLower() switch
if (assetType.Equals("crypto", StringComparison.OrdinalIgnoreCase))
{
"stock" => DateTime.Now.AddMinutes(15), // 股票缓存15分钟
"crypto" => DateTime.Now.AddMinutes(1), // 加密货币缓存1分钟
_ => DateTime.Now.AddMinutes(15)
};
return DateTime.Now.AddMinutes(1); // 加密货币7*24小时交易缓存1分钟
}
// 美股交易时段9:30-16:00 美国东部时间 = 14:30-21:00 UTC夏令时/15:30-22:00 UTC冬令时
// 简化处理UTC时间14:00-22:00视为美股交易时段
var nowUtc = DateTime.UtcNow;
if (nowUtc.Hour >= 14 && nowUtc.Hour < 22 && nowUtc.DayOfWeek is not DayOfWeek.Saturday and not DayOfWeek.Sunday)
{
return DateTime.Now.AddMinutes(15); // 交易时段缓存15分钟
}
return DateTime.Now.AddHours(24); // 非交易时段(盘前/盘后/周末缓存24小时节省API调用
}
}