LogJob.cs 1.3 KB

12345678910111213141516171819202122232425262728
  1. namespace Admin.NET.Core;
  2. /// <summary>
  3. /// 任务调度
  4. /// </summary>
  5. public class LogJob : ISpareTimeWorker
  6. {
  7. /// <summary>
  8. /// 日志删除定时器
  9. /// </summary>
  10. /// <param name="timer"></param>
  11. /// <param name="count"></param>
  12. [SpareTime("@midnight", "日志删除定时器", Description = "每天午夜运行一次", DoOnce = false, StartNow = true, ExecuteType = SpareTimeExecuteTypes.Serial)]
  13. public void ClearLogJob(SpareTimer timer, long count)
  14. {
  15. Scoped.Create(async (_, scope) =>
  16. {
  17. var services = scope.ServiceProvider;
  18. var db = services.GetService<ISqlSugarClient>();
  19. var daysAgo = 30; // 删除30天以前
  20. await db.Deleteable<SysLogVis>().Where(u => (DateTime)u.CreateTime < DateTime.Now.AddDays(-daysAgo)).ExecuteCommandAsync(); // 删除访问日志
  21. await db.Deleteable<SysLogOp>().Where(u => (DateTime)u.CreateTime < DateTime.Now.AddDays(-daysAgo)).ExecuteCommandAsync(); // 删除操作日志
  22. await db.Deleteable<SysLogEx>().Where(u => (DateTime)u.CreateTime < DateTime.Now.AddDays(-daysAgo)).ExecuteCommandAsync(); // 删除异常日志
  23. await db.Deleteable<SysLogDiff>().Where(u => (DateTime)u.CreateTime < DateTime.Now.AddDays(-daysAgo)).ExecuteCommandAsync(); // 删除差异日志
  24. });
  25. }
  26. }