From 4f5f8b4cfa2bad160df363326b6daa31f9f67f73 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BA=91=E9=BE=99=20=E7=8E=8B?= Date: Mon, 21 Oct 2024 09:12:04 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=20=5F=3DTask.Run()=20?= =?UTF-8?q?=E4=BD=BF=E7=94=A8abp=E7=9A=84ApplicationService=E6=8F=90?= =?UTF-8?q?=E4=BE=9B=E7=9A=84LazyServiceProvider=E5=88=9B=E5=BB=BAscope?= =?UTF-8?q?=E5=87=BA=E7=8E=B0=E5=B5=8C=E5=A5=97scope=E5=88=9B=E5=BB=BA?= =?UTF-8?q?=E5=A4=B1=E8=B4=A5=E7=9A=84=E5=BC=82=E5=B8=B8=20=E8=A7=A3?= =?UTF-8?q?=E5=86=B3=E6=96=B9=E6=B3=95=EF=BC=9A=E4=BF=AE=E6=94=B9=E4=B8=BA?= =?UTF-8?q?IServiceScopeFactory=E5=88=9B=E5=BB=BAscope=E7=9A=84=E6=96=B9?= =?UTF-8?q?=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Services/TimerTaskss/TrackPullTask.cs | 9 ++++++++- .../Services/TimerTaskss/TrackPushTask.cs | 9 ++++++++- .../Services/TimerTaskss/TrackWarningTask.cs | 7 +++++-- 3 files changed, 21 insertions(+), 4 deletions(-) diff --git a/src/SJZY.Track.Application/Services/TimerTaskss/TrackPullTask.cs b/src/SJZY.Track.Application/Services/TimerTaskss/TrackPullTask.cs index 460bd655..6bd0edb1 100644 --- a/src/SJZY.Track.Application/Services/TimerTaskss/TrackPullTask.cs +++ b/src/SJZY.Track.Application/Services/TimerTaskss/TrackPullTask.cs @@ -22,6 +22,13 @@ namespace SJZY.Track.Application.Services.TimerTaskss; [ApiExplorerSettings(GroupName = "定时任务")] public class TrackPullTask : ApplicationService, ISingletonDependency { + private readonly IServiceScopeFactory _serviceScopeFactory; + + public TrackPullTask(IServiceScopeFactory serviceScopeFactory) + { + _serviceScopeFactory = serviceScopeFactory; + } + /// /// 定时任务刷新轨迹 /// @@ -30,7 +37,7 @@ public class TrackPullTask : ApplicationService, ISingletonDependency [HttpPost("/TimerTask/Refresh")] public async Task RefreshForTaskAsync() { - using var serviceScope = LazyServiceProvider.CreateScope(); + using var serviceScope = _serviceScopeFactory.CreateScope(); var provideQueries = serviceScope.ServiceProvider.GetRequiredService(); var configs = await provideQueries.GetAllPullConfigsAsync(); diff --git a/src/SJZY.Track.Application/Services/TimerTaskss/TrackPushTask.cs b/src/SJZY.Track.Application/Services/TimerTaskss/TrackPushTask.cs index 928b54e9..47f150de 100644 --- a/src/SJZY.Track.Application/Services/TimerTaskss/TrackPushTask.cs +++ b/src/SJZY.Track.Application/Services/TimerTaskss/TrackPushTask.cs @@ -13,6 +13,13 @@ namespace SJZY.Track.Application.Services.TimerTaskss; [ApiExplorerSettings(GroupName = "定时任务")] public class TrackPushTask : ApplicationService { + private readonly IServiceScopeFactory _serviceScopeFactory; + + public TrackPushTask(IServiceScopeFactory serviceScopeFactory) + { + _serviceScopeFactory = serviceScopeFactory; + } + /// /// 定时任务推送预警(》12小时没有推送的) /// @@ -21,7 +28,7 @@ public class TrackPushTask : ApplicationService [HttpPost("/TimerTask/PushWarn")] public async Task PushWarnForTaskAsync() { - using var serviceScope = LazyServiceProvider.CreateScope(); + using var serviceScope = _serviceScopeFactory.CreateScope(); var configs = serviceScope.ServiceProvider.GetRequiredService>() .Value; diff --git a/src/SJZY.Track.Application/Services/TimerTaskss/TrackWarningTask.cs b/src/SJZY.Track.Application/Services/TimerTaskss/TrackWarningTask.cs index 655f2995..7696262d 100644 --- a/src/SJZY.Track.Application/Services/TimerTaskss/TrackWarningTask.cs +++ b/src/SJZY.Track.Application/Services/TimerTaskss/TrackWarningTask.cs @@ -16,11 +16,14 @@ public class TrackWarningTask : ApplicationService { private readonly IOptionsSnapshot _options; private readonly IOrderRepository _orderRepository; + private readonly IServiceScopeFactory _serviceScopeFactory; - public TrackWarningTask(IOrderRepository orderRepository, IOptionsSnapshot options) + public TrackWarningTask(IOrderRepository orderRepository, IOptionsSnapshot options, + IServiceScopeFactory serviceScopeFactory) { _orderRepository = orderRepository; _options = options; + _serviceScopeFactory = serviceScopeFactory; } /// @@ -63,7 +66,7 @@ public class TrackWarningTask : ApplicationService { try { - using var serviceScope = LazyServiceProvider.CreateScope(); + using var serviceScope = _serviceScopeFactory.CreateScope(); var forewarningNotifyService = serviceScope.ServiceProvider.GetRequiredService();