LogJob.cs 1.3 KB

12345678910111213141516171819202122232425262728
  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<SysLogEx>().Where(u => (DateTime)u.CreateTime < DateTime.Now.AddDays(-daysAgo)).ExecuteCommandAsync(); // 删除异常日志
  22. await db.Deleteable<SysLogDiff>().Where(u => (DateTime)u.CreateTime < DateTime.Now.AddDays(-daysAgo)).ExecuteCommandAsync(); // 删除差异日志
  23. }
  24. }