// 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); // } // }