LogJob.cs 1.2 KB

123456789101112131415161718192021222324252627
  1. namespace Admin.NET.Core;
  2. /// <summary>
  3. /// 清理日志作业任务
  4. /// </summary>
  5. [JobDetail("job_log", Description = "清理操作日志", GroupName = "default", Concurrent = false)]
  6. [Daily(TriggerId = "trigger_log", Description = "清理操作日志")]
  7. public class LogJob : IJob
  8. {
  9. private readonly IServiceProvider _serviceProvider;
  10. public LogJob(IServiceProvider serviceProvider)
  11. {
  12. _serviceProvider = serviceProvider;
  13. }
  14. public async Task ExecuteAsync(JobExecutingContext context, CancellationToken stoppingToken)
  15. {
  16. using var serviceScope = _serviceProvider.CreateScope();
  17. var db = serviceScope.ServiceProvider.GetService<ISqlSugarClient>();
  18. var daysAgo = 30; // 删除30天以前
  19. await db.Deleteable<SysLogVis>().Where(u => (DateTime)u.CreateTime < DateTime.Now.AddDays(-daysAgo)).ExecuteCommandAsync(); // 删除访问日志
  20. await db.Deleteable<SysLogOp>().Where(u => (DateTime)u.CreateTime < DateTime.Now.AddDays(-daysAgo)).ExecuteCommandAsync(); // 删除操作日志
  21. await db.Deleteable<SysLogDiff>().Where(u => (DateTime)u.CreateTime < DateTime.Now.AddDays(-daysAgo)).ExecuteCommandAsync(); // 删除差异日志
  22. }
  23. }