You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

37 lines
1.6 KiB

using Microsoft.Extensions.DependencyInjection;
using Quartz;
using Wood.Data.Repository;
using Wood.Entity.SystemManage;
using Wood.Util;
namespace Wood.AutoJob
{
/// <summary>
/// 日志清理job
/// </summary>
[JobDetail(JobId = "job_DBLogClear", GroupName = "system", Description = "清理日志")]
[PeriodMinutes(480, TriggerId = "trigger_DBLogClear")]
[DisallowConcurrentExecution]
public class DBLogClearJob : AutoJobTask
{
public override async Task Run(IJobExecutionContext context, IServiceProvider serviceProvider)
{
DateTime startTime = DateTime.Now.AddDays(0 - GlobalContext.SystemConfig!.LogDays);
var ldRepository = serviceProvider.GetRequiredService<SqlSugarRepository<LogDiffEntity>>();
var levRepository = serviceProvider.GetRequiredService<SqlSugarRepository<LogEventEntity>>();
var lexRepository = serviceProvider.GetRequiredService<SqlSugarRepository<LogExceptionEntity>>();
var ljRepository = serviceProvider.GetRequiredService<SqlSugarRepository<LogJobEntity>>();
var llRepository = serviceProvider.GetRequiredService<SqlSugarRepository<LogLoginEntity>>();
var loRepository = serviceProvider.GetRequiredService<SqlSugarRepository<LogOperationEntity>>();
await ldRepository.DeleteAsync(it => it.CreateTime < startTime);
await levRepository.DeleteAsync(it => it.CreateTime < startTime);
await lexRepository.DeleteAsync(it => it.CreateTime < startTime);
await ljRepository.DeleteAsync(it => it.CreateTime < startTime);
await llRepository.DeleteAsync(it => it.CreateTime < startTime);
await loRepository.DeleteAsync(it => it.CreateTime < startTime);
}
}
}