diff --git a/src/SJZY.Track.Api/Program.cs b/src/SJZY.Track.Api/Program.cs index 8d7f64af..af018471 100644 --- a/src/SJZY.Track.Api/Program.cs +++ b/src/SJZY.Track.Api/Program.cs @@ -2,10 +2,16 @@ using SJZY.Expand.ABP.Core.Configuration; using SJZY.Expand.ABP.Core.Configuration.AutoRegistOptions; using SJZY.Expand.ABP.Core.Logger; using SJZY.Track.Api; +using SJZY.Track.Application; try { var builder = WebApplication.CreateBuilder(args); + if (args.Length > 0) + { + _BUGOptions.EnablePref = "on".Equals(args[0]); + Console.WriteLine($"是否启动优化模式:{_BUGOptions.EnablePref}"); + } builder .AddConfigurationContainer() .AddOptionsFromConfiguration() diff --git a/src/SJZY.Track.Application/CAP/EventHandlers/TrackDeleteEventHandler.cs b/src/SJZY.Track.Application/CAP/EventHandlers/TrackDeleteEventHandler.cs index 16c4af9b..33d65d4f 100644 --- a/src/SJZY.Track.Application/CAP/EventHandlers/TrackDeleteEventHandler.cs +++ b/src/SJZY.Track.Application/CAP/EventHandlers/TrackDeleteEventHandler.cs @@ -371,6 +371,15 @@ public class TrackDeleteEventHandler : ITransientDependency, ICapSubscribe private void WarningCalc_DeletedTrack(List delTracks) { + if (_BUGOptions.EnablePref) + { + var scope = _serviceProvider.CreateScope(); + var _warningSignalPublisher = scope.ServiceProvider.GetRequiredService(); + _warningSignalPublisher.PublishWarningSignal(WarningSignalType.轨迹删除, delTracks); + scope.Dispose(); + return; + } + //_warningSignalPublisher.PublishWarningSignal(WarningSignalType.轨迹删除, delTracks); var signals = WarningSignal.FromTrack(delTracks, WarningSignalType.轨迹删除); diff --git a/src/SJZY.Track.Application/CAP/EventHandlers/TrackUpsertEventHandler.cs b/src/SJZY.Track.Application/CAP/EventHandlers/TrackUpsertEventHandler.cs index eccd7bbe..65070319 100644 --- a/src/SJZY.Track.Application/CAP/EventHandlers/TrackUpsertEventHandler.cs +++ b/src/SJZY.Track.Application/CAP/EventHandlers/TrackUpsertEventHandler.cs @@ -26,7 +26,9 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe private readonly ITrackDetailsEsRepository _trackDetailsEsRepository; private readonly IBroadcastingService _broadcastingService; private readonly ILogger _logger; + private readonly IOrderOperationRecordEsRepository _orderOperationRecordEsRepository; + //private readonly WarningSignalPublisher _warningSignalPublisher; private readonly IServiceProvider _serviceProvider; @@ -516,6 +518,15 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe private void WarningCalc_AddedTrack(List tracks) { + if (_BUGOptions.EnablePref) + { + var scope = _serviceProvider.CreateScope(); + var _warningSignalPublisher = scope.ServiceProvider.GetRequiredService(); + _warningSignalPublisher.PublishWarningSignal(WarningSignalType.轨迹新增, tracks); + scope.Dispose(); + return; + } + //_warningSignalPublisher.PublishWarningSignal(WarningSignalType.轨迹新增, tracks); var signals = WarningSignal.FromTrack(tracks, WarningSignalType.轨迹新增); _ = Task.Run(async () => @@ -544,6 +555,15 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe private void WarningCalc_UpdatedTrack(List tracks) { + if (_BUGOptions.EnablePref) + { + var scope = _serviceProvider.CreateScope(); + var _warningSignalPublisher = scope.ServiceProvider.GetRequiredService(); + _warningSignalPublisher.PublishWarningSignal(WarningSignalType.轨迹更新, tracks); + scope.Dispose(); + return; + } + //_warningSignalPublisher.PublishWarningSignal(WarningSignalType.轨迹更新, tracks); var signals = WarningSignal.FromTrack(tracks, WarningSignalType.轨迹更新); diff --git a/src/SJZY.Track.Application/SjzyTrackApplicationModule.cs b/src/SJZY.Track.Application/SjzyTrackApplicationModule.cs index f946830b..23a5cc5f 100644 --- a/src/SJZY.Track.Application/SjzyTrackApplicationModule.cs +++ b/src/SJZY.Track.Application/SjzyTrackApplicationModule.cs @@ -200,7 +200,8 @@ public class SjzyTrackApplicationModule : AbpModule $",abortConnect=false"; // 注册预警计算服务 - //context.Services.AddWarningCalcServices(configuration); + if (_BUGOptions.EnablePref) + context.Services.AddWarningCalcServices(configuration); // 注册预警任务后台服务 context.Services.AddHostedService(); diff --git a/src/SJZY.Track.Application/_BUGOptions.cs b/src/SJZY.Track.Application/_BUGOptions.cs new file mode 100644 index 00000000..3418cbe9 --- /dev/null +++ b/src/SJZY.Track.Application/_BUGOptions.cs @@ -0,0 +1,6 @@ +namespace SJZY.Track.Application; + +public static class _BUGOptions +{ + public static bool EnablePref = false; +}