Преглед на файлове

update Admin.NET/Admin.NET.Core/Service/Job/DbJobPersistence.cs.
fix: 实际业务中, 任务因过早,过快启动导致的偶发性错误

Signed-off-by: xin12023 <chenxin2024@gmail.com>

xin12023 преди 1 година
родител
ревизия
770ba11971
променени са 1 файла, в които са добавени 5 реда и са изтрити 5 реда
  1. 5 5
      Admin.NET/Admin.NET.Core/Service/Job/DbJobPersistence.cs

+ 5 - 5
Admin.NET/Admin.NET.Core/Service/Job/DbJobPersistence.cs

@@ -1,4 +1,4 @@
-// Admin.NET 项目的版权、商标、专利和其他相关权利均受相应法律法规的保护。使用本项目应遵守相关法律法规和许可证的要求。
+// Admin.NET 项目的版权、商标、专利和其他相关权利均受相应法律法规的保护。使用本项目应遵守相关法律法规和许可证的要求。
 //
 // 本项目主要遵循 MIT 许可证和 Apache 许可证(版本 2.0)进行分发和使用。许可证位于源代码树根目录中的 LICENSE-MIT 和 LICENSE-APACHE 文件。
 //
@@ -27,7 +27,7 @@ public class DbJobPersistence : IJobPersistence
     public async Task<IEnumerable<SchedulerBuilder>> PreloadAsync(CancellationToken stoppingToken)
     {
         using var scope = _serviceScopeFactory.CreateScope();
-        var db = scope.ServiceProvider.GetRequiredService<ISqlSugarClient>();
+        var db = scope.ServiceProvider.GetRequiredService<ISqlSugarClient>().CopyNew();
         var dynamicJobCompiler = scope.ServiceProvider.GetRequiredService<DynamicJobCompiler>();
 
         // 获取所有定义的作业
@@ -132,7 +132,7 @@ public class DbJobPersistence : IJobPersistence
     {
         using (var scope = _serviceScopeFactory.CreateScope())
         {
-            var db = scope.ServiceProvider.GetRequiredService<ISqlSugarClient>();
+            var db = scope.ServiceProvider.GetRequiredService<ISqlSugarClient>().CopyNew();
 
             var jobDetail = context.JobDetail.Adapt<SysJobDetail>();
             switch (context.Behavior)
@@ -160,7 +160,7 @@ public class DbJobPersistence : IJobPersistence
     {
         using (var scope = _serviceScopeFactory.CreateScope())
         {
-            var db = scope.ServiceProvider.GetRequiredService<ISqlSugarClient>();
+            var db = scope.ServiceProvider.GetRequiredService<ISqlSugarClient>().CopyNew();
 
             var jobTrigger = context.Trigger.Adapt<SysJobTrigger>();
             switch (context.Behavior)
@@ -188,7 +188,7 @@ public class DbJobPersistence : IJobPersistence
     {
         using (var scope = _serviceScopeFactory.CreateScope())
         {
-            var db = scope.ServiceProvider.GetRequiredService<ISqlSugarClient>();
+            var db = scope.ServiceProvider.GetRequiredService<ISqlSugarClient>().CopyNew();
 
             var jobTriggerRecord = timeline.Adapt<SysJobTriggerRecord>();
             await db.Insertable(jobTriggerRecord).ExecuteCommandAsync();