فهرست منبع

增加数据库日志定时删除任务

zuohuaijun 3 سال پیش
والد
کامیت
e65c0804da

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

@@ -25,9 +25,9 @@
   <ItemGroup>
     <PackageReference Include="AspNetCoreRateLimit" Version="4.0.2" />
     <PackageReference Include="Caching.CSRedis" Version="3.8.3" />
-    <PackageReference Include="Furion.Extras.Authentication.JwtBearer" Version="4.1.2" />
-    <PackageReference Include="Furion.Extras.ObjectMapper.Mapster" Version="4.1.2" />
-    <PackageReference Include="Furion.Pure" Version="4.1.2" />
+    <PackageReference Include="Furion.Extras.Authentication.JwtBearer" Version="4.1.3" />
+    <PackageReference Include="Furion.Extras.ObjectMapper.Mapster" Version="4.1.3" />
+    <PackageReference Include="Furion.Pure" Version="4.1.3" />
     <PackageReference Include="IGeekFan.AspNetCore.Knife4jUI" Version="0.0.11" />
     <PackageReference Include="Magicodes.IE.Excel" Version="2.6.4" />
     <PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="6.0.7" />

+ 12 - 0
Admin.NET/Admin.NET.Core/Admin.NET.Core.xml

@@ -2811,6 +2811,18 @@
             <param name="context"></param>
             <returns></returns>
         </member>
+        <member name="T:Admin.NET.Core.JobTimer">
+            <summary>
+            任务调度
+            </summary>
+        </member>
+        <member name="M:Admin.NET.Core.JobTimer.DeleteLogJob(Furion.TaskScheduler.SpareTimer,System.Int64)">
+            <summary>
+            日志删除定时器
+            </summary>
+            <param name="timer"></param>
+            <param name="count"></param>
+        </member>
         <member name="T:Admin.NET.Core.DbLoggingWriter">
             <summary>
             数据库日志写入器

+ 28 - 0
Admin.NET/Admin.NET.Core/Job/JobTimer.cs

@@ -0,0 +1,28 @@
+namespace Admin.NET.Core;
+
+/// <summary>
+/// 任务调度
+/// </summary>
+public class JobTimer : ISpareTimeWorker
+{
+    /// <summary>
+    /// 日志删除定时器
+    /// </summary>
+    /// <param name="timer"></param>
+    /// <param name="count"></param>
+    [SpareTime("@midnight", "日志删除定时器", Description = "每天午夜运行一次", DoOnce = false, StartNow = true, ExecuteType = SpareTimeExecuteTypes.Serial)]
+    public void DeleteLogJob(SpareTimer timer, long count)
+    {
+        Scoped.Create(async (_, scope) =>
+        {
+            var services = scope.ServiceProvider;
+            var db = services.GetService<ISqlSugarClient>();
+
+            var daysAgo = 30; // 删除30天以前
+            await db.Deleteable<SysLogVis>().Where(u => (DateTime)u.CreateTime < DateTime.Now.AddDays(-daysAgo)).ExecuteCommandAsync(); // 删除访问日志
+            await db.Deleteable<SysLogOp>().Where(u => (DateTime)u.CreateTime < DateTime.Now.AddDays(-daysAgo)).ExecuteCommandAsync(); // 删除操作日志
+            await db.Deleteable<SysLogEx>().Where(u => (DateTime)u.CreateTime < DateTime.Now.AddDays(-daysAgo)).ExecuteCommandAsync(); // 删除异常日志
+            await db.Deleteable<SysLogDiff>().Where(u => (DateTime)u.CreateTime < DateTime.Now.AddDays(-daysAgo)).ExecuteCommandAsync(); // 删除差异日志
+        });
+    }
+}

+ 2 - 0
Admin.NET/Admin.NET.Core/Service/Auth/AuthService.cs

@@ -74,6 +74,8 @@ public class AuthService : IDynamicApiController, ITransient
 
         // 设置Swagger自动登录
         _httpContextAccessor.HttpContext.SigninToSwagger(accessToken);
+        // Knife4UI-AfterScript登录脚本
+        // ke.global.setAllHeader('Authorization', 'Bearer ' + ke.response.data.result.token);
 
         // 生成刷新Token令牌
         var refreshToken = JWTEncryption.GenerateRefreshToken(accessToken, _refreshTokenOptions.ExpiredTime);

+ 1 - 1
Admin.NET/Admin.NET.UnitTest/Admin.NET.UnitTest.csproj

@@ -8,7 +8,7 @@
   </PropertyGroup>
 
   <ItemGroup>
-    <PackageReference Include="Furion.Pure.Xunit" Version="4.1.2" />
+    <PackageReference Include="Furion.Pure.Xunit" Version="4.1.3" />
     <PackageReference Include="Microsoft.AspNetCore.Mvc.Testing" Version="6.0.7" />
     <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.2.0" />
     <PackageReference Include="xunit" Version="2.4.1" />