Explorar el Código

😁1、增加作业触发器运行记录 2、升级nuget包版本

zuohuaijun hace 2 años
padre
commit
b550a9a6df

+ 4 - 4
Admin.NET/Admin.NET.Core/Admin.NET.Core.csproj

@@ -21,9 +21,9 @@
     <PackageReference Include="AspNet.Security.OAuth.Gitee" Version="6.0.15" />
     <PackageReference Include="AspNet.Security.OAuth.Weixin" Version="6.0.15" />
     <PackageReference Include="AspNetCoreRateLimit" Version="5.0.0" />
-    <PackageReference Include="Furion.Extras.Authentication.JwtBearer" Version="4.9.1.15" />
-    <PackageReference Include="Furion.Extras.ObjectMapper.Mapster" Version="4.9.1.15" />
-    <PackageReference Include="Furion.Pure" Version="4.9.1.15" />
+    <PackageReference Include="Furion.Extras.Authentication.JwtBearer" Version="4.9.1.16" />
+    <PackageReference Include="Furion.Extras.ObjectMapper.Mapster" Version="4.9.1.16" />
+    <PackageReference Include="Furion.Pure" Version="4.9.1.16" />
     <PackageReference Include="IPTools.China" Version="1.6.0" />
     <PackageReference Include="Lazy.Captcha.Core" Version="2.0.6" />
     <PackageReference Include="Magicodes.IE.Excel" Version="2.7.4.5" />
@@ -38,7 +38,7 @@
     <PackageReference Include="SixLabors.ImageSharp.Web" Version="3.1.0" />
     <PackageReference Include="SKIT.FlurlHttpClient.Wechat.Api" Version="2.36.0" />
     <PackageReference Include="SKIT.FlurlHttpClient.Wechat.TenpayV3" Version="2.20.1" />
-    <PackageReference Include="SqlSugarCore" Version="5.1.4.129" />
+    <PackageReference Include="SqlSugarCore" Version="5.1.4.130" />
     <PackageReference Include="System.Linq.Dynamic.Core" Version="1.3.7" />
     <PackageReference Include="UAParser" Version="3.1.47" />
     <PackageReference Include="Yitter.IdGenerator" Version="1.0.14" />

+ 75 - 0
Admin.NET/Admin.NET.Core/Entity/SysJobTriggerRecord.cs

@@ -0,0 +1,75 @@
+// 麻省理工学院许可证
+//
+// 版权所有 (c) 2021-2023 zuohuaijun,大名科技(天津)有限公司  联系电话/微信:18020030720  QQ:515096995
+//
+// 特此免费授予获得本软件的任何人以处理本软件的权利,但须遵守以下条件:在所有副本或重要部分的软件中必须包括上述版权声明和本许可声明。
+//
+// 软件按“原样”提供,不提供任何形式的明示或暗示的保证,包括但不限于对适销性、适用性和非侵权的保证。
+// 在任何情况下,作者或版权持有人均不对任何索赔、损害或其他责任负责,无论是因合同、侵权或其他方式引起的,与软件或其使用或其他交易有关。
+
+namespace Admin.NET.Core;
+
+/// <summary>
+/// 系统作业触发器运行记录表
+/// </summary>
+[SugarTable(null, "系统作业触发器运行记录表")]
+[SysTable]
+public class SysJobTriggerRecord : EntityBaseId
+{
+    /// <summary>
+    /// 作业Id
+    /// </summary>
+    [SugarColumn(ColumnDescription = "作业Id", Length = 64)]
+    [Required, MaxLength(64)]
+    public virtual string JobId { get; set; }
+
+    /// <summary>
+    /// 触发器Id
+    /// </summary>
+    [SugarColumn(ColumnDescription = "触发器Id", Length = 64)]
+    [Required, MaxLength(64)]
+    public virtual string TriggerId { get; set; }
+
+    /// <summary>
+    /// 当前运行次数
+    /// </summary>
+    [SugarColumn(ColumnDescription = "当前运行次数")]
+    public long NumberOfRuns { get; set; }
+
+    /// <summary>
+    /// 最近运行时间
+    /// </summary>
+    [SugarColumn(ColumnDescription = "最近运行时间")]
+    public DateTime? LastRunTime { get; set; }
+
+    /// <summary>
+    /// 下一次运行时间
+    /// </summary>
+    [SugarColumn(ColumnDescription = "下一次运行时间")]
+    public DateTime? NextRunTime { get; set; }
+
+    /// <summary>
+    /// 触发器状态
+    /// </summary>
+    [SugarColumn(ColumnDescription = "触发器状态")]
+    public TriggerStatus Status { get; set; } = TriggerStatus.Ready;
+
+    /// <summary>
+    /// 本次执行结果
+    /// </summary>
+    [SugarColumn(ColumnDescription = "本次执行结果", Length = 128)]
+    [MaxLength(128)]
+    public string? Result { get; set; }
+
+    /// <summary>
+    /// 本次执行耗时
+    /// </summary>
+    [SugarColumn(ColumnDescription = "本次执行耗时")]
+    public long ElapsedTime { get; set; }
+
+    /// <summary>
+    /// 创建时间
+    /// </summary>
+    [SugarColumn(ColumnDescription = "创建时间")]
+    public DateTime? CreatedTime { get; set; }
+}

+ 15 - 6
Admin.NET/Admin.NET.Core/Service/Job/DbJobPersistence.cs

@@ -149,9 +149,6 @@ public class DbJobPersistence : IJobPersistence
                 case PersistenceBehavior.Removed:
                     jobDetailRep.AsDeleteable().Where(u => u.JobId == jobDetail.JobId).ExecuteCommand();
                     break;
-
-                default:
-                    throw new ArgumentOutOfRangeException();
             }
         }
     }
@@ -180,10 +177,22 @@ public class DbJobPersistence : IJobPersistence
                 case PersistenceBehavior.Removed:
                     jobTriggerRep.AsDeleteable().Where(u => u.TriggerId == jobTrigger.TriggerId && u.JobId == jobTrigger.JobId).ExecuteCommand();
                     break;
-
-                default:
-                    throw new ArgumentOutOfRangeException();
             }
         }
     }
+
+    /// <summary>
+    /// 作业触发器运行记录
+    /// </summary>
+    /// <param name="timeline"></param>
+    public void OnExecutionRecord(TriggerTimeline timeline)
+    {
+        using (var scope = _serviceScopeFactory.CreateScope())
+        {
+            var jobTriggerRecordRep = scope.ServiceProvider.GetRequiredService<SqlSugarRepository<SysJobTriggerRecord>>();
+
+            var jobTriggerRecord = timeline.Adapt<SysJobTriggerRecord>();
+            jobTriggerRecordRep.AsInsertable(jobTriggerRecord).ExecuteCommand();
+        }
+    }
 }

+ 0 - 1
Admin.NET/Admin.NET.Web.Core/Startup.cs

@@ -17,7 +17,6 @@ using IGeekFan.AspNetCore.Knife4jUI;
 using Microsoft.AspNetCore.Builder;
 using Microsoft.AspNetCore.Hosting;
 using Microsoft.AspNetCore.HttpOverrides;
-using Microsoft.AspNetCore.SignalR;
 using Microsoft.Extensions.DependencyInjection;
 using Microsoft.Extensions.Hosting;
 using Newtonsoft.Json;