LogJob.cs 1.2 KB

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