diff --git a/Src/Dlhis.ScheduledTask/Jobs/ArchiveDeviceUploadLogJob.cs b/Src/Dlhis.ScheduledTask/Jobs/ArchiveDeviceUploadLogJob.cs index f0dd8548..9a441628 100644 --- a/Src/Dlhis.ScheduledTask/Jobs/ArchiveDeviceUploadLogJob.cs +++ b/Src/Dlhis.ScheduledTask/Jobs/ArchiveDeviceUploadLogJob.cs @@ -1,61 +1,61 @@ -// using Dlhis.Entity.Device.Entities; -// using Dlhis.ScheduledTask.Attributes; -// -// namespace Dlhis.ScheduledTask.Jobs; -// -// /// -// /// 归档设备通行记录 -// /// -// [RecurringJob(nameof(ArchiveDeviceUploadLogJob), "0 0 3 * * ? ", Name = "归档设备通行记录")] -// public class ArchiveDeviceUploadLogJob : BaseJob -// { -// public ArchiveDeviceUploadLogJob(IServiceProvider serviceProvider) : base(serviceProvider) -// { -// } -// -// protected override async Task RunAsync(IServiceProvider serviceProvider) -// { -// //设置60天前的数据需要归档 -// var before60Days = DateTime.Today.AddDays(-60).AddSeconds(1); -// //每次查询500条数据 -// const int limit = 500; -// //归档表 -// const string tableName = "deviceuploadlog_20250107"; -// -// //正序获取数据 -// var data = await DbContext.Queryable() -// .Where(x => x.RaiseDateTime < before60Days) -// .OrderBy(x => x.Id) -// .ToPageListAsync(1, limit); -// -// do -// { -// if (data.Any()) -// { -// await DbContext.Client.Ado.BeginTranAsync(); -// try -// { -// //删除数据 -// await DbContext.DeleteReallyAsync(data); -// foreach (var item in data) -// { -// item.Id = 0; -// } -// -// //插入到归档表 -// await DbContext.Client.Insertable(data).AS(tableName).ExecuteCommandAsync(); -// await DbContext.Client.Ado.CommitTranAsync(); -// } -// catch (Exception) -// { -// await DbContext.Client.Ado.RollbackTranAsync(); -// } -// -// await Task.Delay(200); -// -// //再次获取数据 -// data = await DbContext.Queryable().Where(x => x.RaiseDateTime < before60Days).OrderBy(x => x.Id).ToPageListAsync(1, limit); -// } -// } while (data.Count == limit); -// } -// } \ No newline at end of file +using Dlhis.Entity.Device.Entities; +using Dlhis.ScheduledTask.Attributes; + +namespace Dlhis.ScheduledTask.Jobs; + +/// +/// 归档设备通行记录 +/// +[RecurringJob(nameof(ArchiveDeviceUploadLogJob), "0 0 3 * * ? ", Name = "归档设备通行记录")] +public class ArchiveDeviceUploadLogJob : BaseJob +{ + public ArchiveDeviceUploadLogJob(IServiceProvider serviceProvider) : base(serviceProvider) + { + } + + protected override async Task RunAsync(IServiceProvider serviceProvider) + { + //设置60天前的数据需要归档 + var before60Days = DateTime.Today.AddDays(-60).AddSeconds(1); + //每次查询500条数据 + const int limit = 500; + //归档表 + const string tableName = "deviceuploadlog_20250107"; + + //正序获取数据 + var data = await DbContext.Queryable() + .Where(x => x.RaiseDateTime < before60Days) + .OrderBy(x => x.Id) + .ToPageListAsync(1, limit); + + do + { + if (data.Any()) + { + await DbContext.Client.Ado.BeginTranAsync(); + try + { + //删除数据 + await DbContext.DeleteReallyAsync(data); + foreach (var item in data) + { + item.Id = 0; + } + + //插入到归档表 + await DbContext.Client.Insertable(data).AS(tableName).ExecuteCommandAsync(); + await DbContext.Client.Ado.CommitTranAsync(); + } + catch (Exception) + { + await DbContext.Client.Ado.RollbackTranAsync(); + } + + await Task.Delay(200); + + //再次获取数据 + data = await DbContext.Queryable().Where(x => x.RaiseDateTime < before60Days).OrderBy(x => x.Id).ToPageListAsync(1, limit); + } + } while (data.Count == limit); + } +} \ No newline at end of file