fix 恢复job
This commit is contained in:
@@ -1,61 +1,61 @@
|
||||
// using Dlhis.Entity.Device.Entities;
|
||||
// using Dlhis.ScheduledTask.Attributes;
|
||||
//
|
||||
// namespace Dlhis.ScheduledTask.Jobs;
|
||||
//
|
||||
// /// <summary>
|
||||
// /// 归档设备通行记录
|
||||
// /// </summary>
|
||||
// [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<DeviceUploadLogEntity>()
|
||||
// .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<DeviceUploadLogEntity>().Where(x => x.RaiseDateTime < before60Days).OrderBy(x => x.Id).ToPageListAsync(1, limit);
|
||||
// }
|
||||
// } while (data.Count == limit);
|
||||
// }
|
||||
// }
|
||||
using Dlhis.Entity.Device.Entities;
|
||||
using Dlhis.ScheduledTask.Attributes;
|
||||
|
||||
namespace Dlhis.ScheduledTask.Jobs;
|
||||
|
||||
/// <summary>
|
||||
/// 归档设备通行记录
|
||||
/// </summary>
|
||||
[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<DeviceUploadLogEntity>()
|
||||
.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<DeviceUploadLogEntity>().Where(x => x.RaiseDateTime < before60Days).OrderBy(x => x.Id).ToPageListAsync(1, limit);
|
||||
}
|
||||
} while (data.Count == limit);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user