From 7c1b4e67f85e640422c099f3118c472ca7855daa Mon Sep 17 00:00:00 2001 From: hardstylewyl <827778732@qq.com> Date: Fri, 21 Mar 2025 15:47:35 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E4=BF=AE=E5=A4=8D=E7=A1=AE=E4=BF=9D?= =?UTF-8?q?=E8=BD=A8=E8=BF=B9=E8=90=BD=E7=9B=98=E5=90=8E=E6=89=8D=E5=BC=95?= =?UTF-8?q?=E5=8F=91=E9=A2=84=E8=AD=A6=E8=AE=A1=E7=AE=97=20test-interface:?= =?UTF-8?q?=20=E6=8F=90=E4=BE=9B=E9=A2=84=E8=AD=A6=E7=94=9F=E6=88=90?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E5=BF=AB=E6=8D=B7=E6=89=A7=E8=A1=8C=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../EventHandlers/TrackDeleteEventHandler.cs | 12 +++---- .../EventHandlers/TrackUpsertEventHandler.cs | 18 +++++----- .../_TransportDetailsGenerateService.cs | 35 +++++++++++++++++++ 3 files changed, 51 insertions(+), 14 deletions(-) create mode 100644 src/SJZY.Track.Application/Services/DebugApis/TransportDetailsGenerate/_TransportDetailsGenerateService.cs diff --git a/src/SJZY.Track.Application/CAP/EventHandlers/TrackDeleteEventHandler.cs b/src/SJZY.Track.Application/CAP/EventHandlers/TrackDeleteEventHandler.cs index 4070942a..281e01e8 100644 --- a/src/SJZY.Track.Application/CAP/EventHandlers/TrackDeleteEventHandler.cs +++ b/src/SJZY.Track.Application/CAP/EventHandlers/TrackDeleteEventHandler.cs @@ -385,21 +385,21 @@ public class TrackDeleteEventHandler : ITransientDependency, ICapSubscribe _ = Task.Run(async () => { - var scope = _serviceProvider.CreateScope(); + var scope = _serviceProvider.CreateAsyncScope(); try { var handler = scope.ServiceProvider.GetRequiredService(); - await handler.TrackDeletedHandleAsync(signals); - var handler2 = scope.ServiceProvider.GetRequiredService(); - await handler2.TrackDeletedHandleAsync(signals); - var handler3 = scope.ServiceProvider.GetRequiredService(); + + await Task.Delay(1500); //确保落盘 + await handler2.TrackDeletedHandleAsync(signals); + await handler.TrackDeletedHandleAsync(signals); await handler3.TrackUpdatedOrDeletedHandleAsync(signals.Cast().ToList()); } finally { - scope.Dispose(); + await scope.DisposeAsync(); } }); } diff --git a/src/SJZY.Track.Application/CAP/EventHandlers/TrackUpsertEventHandler.cs b/src/SJZY.Track.Application/CAP/EventHandlers/TrackUpsertEventHandler.cs index 1c9c0f34..827966a8 100644 --- a/src/SJZY.Track.Application/CAP/EventHandlers/TrackUpsertEventHandler.cs +++ b/src/SJZY.Track.Application/CAP/EventHandlers/TrackUpsertEventHandler.cs @@ -504,18 +504,19 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe _ = Task.Run(async () => { - var scope = _serviceProvider.CreateScope(); + var scope = _serviceProvider.CreateAsyncScope(); try { var handler = scope.ServiceProvider.GetRequiredService(); - await handler.TrackAddedHandleAsync(signals); - var handler2 = scope.ServiceProvider.GetRequiredService(); + + await Task.Delay(1500); //确保落盘 + await handler.TrackAddedHandleAsync(signals); await handler2.TrackAddedOrUpdatedHandleAsync(signals.Cast().ToList()); } finally { - scope.Dispose(); + await scope.DisposeAsync(); } }); } @@ -530,18 +531,19 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe }).ToList(); _ = Task.Run(async () => { - var scope = _serviceProvider.CreateScope(); + var scope = _serviceProvider.CreateAsyncScope(); try { var handler = scope.ServiceProvider.GetRequiredService(); - await handler.TrackAddedOrUpdatedHandleAsync(signals.Cast().ToList()); - var handler2 = scope.ServiceProvider.GetRequiredService(); + + await Task.Delay(1500); //确保落盘 + await handler.TrackAddedOrUpdatedHandleAsync(signals.Cast().ToList()); await handler2.TrackUpdatedOrDeletedHandleAsync(signals.Cast().ToList()); } finally { - scope.Dispose(); + await scope.DisposeAsync(); } }); } diff --git a/src/SJZY.Track.Application/Services/DebugApis/TransportDetailsGenerate/_TransportDetailsGenerateService.cs b/src/SJZY.Track.Application/Services/DebugApis/TransportDetailsGenerate/_TransportDetailsGenerateService.cs new file mode 100644 index 00000000..de80fdba --- /dev/null +++ b/src/SJZY.Track.Application/Services/DebugApis/TransportDetailsGenerate/_TransportDetailsGenerateService.cs @@ -0,0 +1,35 @@ +using Microsoft.AspNetCore.Authorization; +using SJZY.Track.Application.Services.Warning.Handlers; +using SJZY.Track.Domain.Aggregates.WarningAggregate; + +namespace SJZY.Track.Application.Services.DebugApis.TransportDetailsGenerate; + +/// +/// 运输预警明细生成任务 +/// +[AllowAnonymous] +[ApiExplorerSettings(GroupName = "调试专用")] +[Route("/S07")] +public class _TransportDetailsGenerateService : ApplicationService +{ + private readonly IWarningTaskRepository _warningTaskRepository; + private readonly ITransportWarningHandler _transportWarningHandler; + + public _TransportDetailsGenerateService(IWarningTaskRepository warningTaskRepository, ITransportWarningHandler transportWarningHandler) + { + _warningTaskRepository = warningTaskRepository; + _transportWarningHandler = transportWarningHandler; + } + + /// + /// 运输预警明细生成任务执行,立即执行不考虑计划时机 + /// + [HttpGet("TransportWarningDetailsGenerate_ScanAndExec")] + public async Task TransportWarningDetailsGenerate_ScanAndExec() + { + var tasks = await _warningTaskRepository.GetTransportWarningDetailsGenerateTaskAsync(x => !x.IsClosed); + + await _transportWarningHandler.HandleWarningDetailsGenerateTask(tasks); + } + +}