namespace Admin.NET.Core;
///
/// 任务调度
///
public class JobTimer : ISpareTimeWorker
{
///
/// 日志删除定时器
///
///
///
[SpareTime("@midnight", "日志删除定时器", Description = "每天午夜运行一次", DoOnce = false, StartNow = true, ExecuteType = SpareTimeExecuteTypes.Serial)]
public void ClearLogJob(SpareTimer timer, long count)
{
Scoped.Create(async (_, scope) =>
{
var services = scope.ServiceProvider;
var db = services.GetService();
var daysAgo = 30; // 删除30天以前
await db.Deleteable().Where(u => (DateTime)u.CreateTime < DateTime.Now.AddDays(-daysAgo)).ExecuteCommandAsync(); // 删除访问日志
await db.Deleteable().Where(u => (DateTime)u.CreateTime < DateTime.Now.AddDays(-daysAgo)).ExecuteCommandAsync(); // 删除操作日志
await db.Deleteable().Where(u => (DateTime)u.CreateTime < DateTime.Now.AddDays(-daysAgo)).ExecuteCommandAsync(); // 删除异常日志
await db.Deleteable().Where(u => (DateTime)u.CreateTime < DateTime.Now.AddDays(-daysAgo)).ExecuteCommandAsync(); // 删除差异日志
});
}
}