From 407ceece1a3be3d7ebb6cd2ef55ad4ddc4395134 Mon Sep 17 00:00:00 2001 From: hwh <332078369@qq.com> Date: 星期四, 16 一月 2025 11:15:57 +0800 Subject: [PATCH] 清理日志任务 --- Admin.NET/WCS.Application/Job/LogClearJob.cs | 37 +++++++++++++++++++++++++++++++++++++ 1 files changed, 37 insertions(+), 0 deletions(-) diff --git a/Admin.NET/WCS.Application/Job/LogClearJob.cs b/Admin.NET/WCS.Application/Job/LogClearJob.cs new file mode 100644 index 0000000..0c0f058 --- /dev/null +++ b/Admin.NET/WCS.Application/Job/LogClearJob.cs @@ -0,0 +1,37 @@ +锘縰sing Furion.Schedule; +using Microsoft.Extensions.Logging; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace WCS.Application; +/// <summary> +/// 鏃ュ織娓呯悊浠诲姟 +/// </summary> +[JobDetail("job_logClear", Description = "浠诲姟鏃ュ織娓呯悊浠诲姟", GroupName = "default", Concurrent = false)] +[Daily(TriggerId = "trigger_logClear", Description = "浠诲姟鏃ュ織娓呯悊浠诲姟")] +public class LogClearJob : IJob +{ + private readonly IServiceScopeFactory _scopeFactory; + private readonly ILogger _logger; + + public LogClearJob(IServiceScopeFactory scopeFactory, ILoggerFactory loggerFactory) + { + _scopeFactory = scopeFactory; + _logger = loggerFactory.CreateLogger(CommonConst.SysLogCategoryName); + } + + public async Task ExecuteAsync(JobExecutingContext context, CancellationToken stoppingToken) + { + using var serviceScope = _scopeFactory.CreateScope(); + + var rep = serviceScope.ServiceProvider.GetRequiredService<SqlSugarRepository<WcsTask>>(); + DateTime threeMonthsAgo = DateTime.Now.AddMonths(-3); + await rep.CopyNew().Context.Deleteable<WcsTask>().Where(s => s.CreateTime < threeMonthsAgo).ExecuteCommandAsync(stoppingToken); + await rep.CopyNew().Context.Deleteable<WcsTaskMonitor>().Where(s => s.CreateTime < threeMonthsAgo).ExecuteCommandAsync(stoppingToken); + threeMonthsAgo = DateTime.Now.AddMonths(-6); + await rep.CopyNew().Context.Deleteable<WcsAlarmLog>().Where(s => s.CreateTime < threeMonthsAgo).ExecuteCommandAsync(stoppingToken); + } +} -- Gitblit v1.8.0