diff --git a/YLWinSer/RealTimeCalcPositionService/ClientPosiTask.cs b/YLWinSer/RealTimeCalcPositionService/ClientPosiTask.cs index f1074f1a..3ea5cb86 100644 --- a/YLWinSer/RealTimeCalcPositionService/ClientPosiTask.cs +++ b/YLWinSer/RealTimeCalcPositionService/ClientPosiTask.cs @@ -40,7 +40,10 @@ namespace RealTimeCalcPositionService { string calctime = memoryCache.Get("calctime"); var currentTime = DateTime.Now; - bool hasNew= RealtimePnlCalc.HasNewFlow(currentTime); + //以上次计算时间为基准判断是否有新流水,避免无变化时空转重算 + var hasNew = DateTime.TryParseExact(calctime, "yyyy-MM-dd HH:mm:ss.fff", + System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None, out var lastCalcTime) + && RealtimePnlCalc.HasNewFlow(lastCalcTime); if (string.IsNullOrEmpty(calctime)|| hasNew) { memoryCache.Set("calctime", currentTime.ToString("yyyy-MM-dd HH:mm:ss.fff"), TimeSpan.FromSeconds(30)); @@ -53,6 +56,7 @@ namespace RealTimeCalcPositionService _logger.Error(ex, "实时持仓服务异常:" + ex.Message); } } + stoppingToken.WaitHandle.WaitOne(TimeSpan.FromSeconds(2)); } } public async Task StopAsync(CancellationToken cancellationToken) diff --git a/YLWinSer/RealTimeCalcPositionService/Worker.cs b/YLWinSer/RealTimeCalcPositionService/Worker.cs index 1da6d82d..a4de7a1c 100644 --- a/YLWinSer/RealTimeCalcPositionService/Worker.cs +++ b/YLWinSer/RealTimeCalcPositionService/Worker.cs @@ -47,7 +47,9 @@ namespace RealTimeCalcPositionService { _logger.Error(ex, "ʵʱԤ쳣:" + ex.Message); } - + + //ֵв䡢¼ѯ + stoppingToken.WaitHandle.WaitOne(TimeSpan.FromSeconds(30)); } } public async Task StopAsync(CancellationToken cancellationToken)