fix:修复确保轨迹落盘后才引发预警计算
test-interface: 提供预警生成任务快捷执行接口
This commit is contained in:
parent
e9c32bb4cb
commit
7c1b4e67f8
@ -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<ICompleteWarningHandler>();
|
||||
await handler.TrackDeletedHandleAsync(signals);
|
||||
|
||||
var handler2 = scope.ServiceProvider.GetRequiredService<ITransportWarningHandler>();
|
||||
await handler2.TrackDeletedHandleAsync(signals);
|
||||
|
||||
var handler3 = scope.ServiceProvider.GetRequiredService<IReturnWarningHandler>();
|
||||
|
||||
await Task.Delay(1500); //确保落盘
|
||||
await handler2.TrackDeletedHandleAsync(signals);
|
||||
await handler.TrackDeletedHandleAsync(signals);
|
||||
await handler3.TrackUpdatedOrDeletedHandleAsync(signals.Cast<IWarningSignal>().ToList());
|
||||
}
|
||||
finally
|
||||
{
|
||||
scope.Dispose();
|
||||
await scope.DisposeAsync();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@ -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<ICompleteWarningHandler>();
|
||||
await handler.TrackAddedHandleAsync(signals);
|
||||
|
||||
var handler2 = scope.ServiceProvider.GetRequiredService<ITransportWarningHandler>();
|
||||
|
||||
await Task.Delay(1500); //确保落盘
|
||||
await handler.TrackAddedHandleAsync(signals);
|
||||
await handler2.TrackAddedOrUpdatedHandleAsync(signals.Cast<IWarningSignal>().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<ITransportWarningHandler>();
|
||||
await handler.TrackAddedOrUpdatedHandleAsync(signals.Cast<IWarningSignal>().ToList());
|
||||
|
||||
var handler2 = scope.ServiceProvider.GetRequiredService<IReturnWarningHandler>();
|
||||
|
||||
await Task.Delay(1500); //确保落盘
|
||||
await handler.TrackAddedOrUpdatedHandleAsync(signals.Cast<IWarningSignal>().ToList());
|
||||
await handler2.TrackUpdatedOrDeletedHandleAsync(signals.Cast<IWarningSignal>().ToList());
|
||||
}
|
||||
finally
|
||||
{
|
||||
scope.Dispose();
|
||||
await scope.DisposeAsync();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@ -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;
|
||||
|
||||
/// <summary>
|
||||
/// 运输预警明细生成任务
|
||||
/// </summary>
|
||||
[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;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 运输预警明细生成任务执行,立即执行不考虑计划时机
|
||||
/// </summary>
|
||||
[HttpGet("TransportWarningDetailsGenerate_ScanAndExec")]
|
||||
public async Task TransportWarningDetailsGenerate_ScanAndExec()
|
||||
{
|
||||
var tasks = await _warningTaskRepository.GetTransportWarningDetailsGenerateTaskAsync(x => !x.IsClosed);
|
||||
|
||||
await _transportWarningHandler.HandleWarningDetailsGenerateTask(tasks);
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user