first commit
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
using JSMachine.WMS.App.IService;
|
||||
using JSMachine.WMS.Application.IService;
|
||||
using JSMachine.WMS.Infrastructure;
|
||||
using JSMachine.WMS.Job.Enum;
|
||||
using JSMachine.WMS.Job.JobAttributes;
|
||||
using Quartz;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace JSMachine.WMS.Job.Job
|
||||
{
|
||||
[DisallowConcurrentExecution]
|
||||
[PersistJobDataAfterExecution]
|
||||
[Job(Name = nameof(DataCleanJob)
|
||||
, Group = nameof(DataCleanJob) + "_Group"
|
||||
, Description = "过期数据清理任务"
|
||||
, ScheduleType = ScheduleType.Simple
|
||||
, IntervalMilliSeconds = 1000 * 3600 * 24
|
||||
, RepeatCount = 0
|
||||
, StartTimeStr = null)]
|
||||
/// <summary>
|
||||
/// 定期清理过期 ERP、AGV、操作日志、提升机计数和日志文件,避免历史数据无限增长。
|
||||
/// </summary>
|
||||
public class DataCleanJob : IJob
|
||||
{
|
||||
private static readonly IERPTaskService ERPTaskService = GlobalServericeProvidor.GetService<IERPTaskService>();
|
||||
private static readonly IAGVTaskService AgvTaskService = GlobalServericeProvidor.GetService<IAGVTaskService>();
|
||||
private static readonly IOperationLogService OperationLogService = GlobalServericeProvidor.GetService<IOperationLogService>();
|
||||
private static readonly IElevatorCountService ElevatorCountService = GlobalServericeProvidor.GetService<IElevatorCountService>();
|
||||
|
||||
|
||||
/// <summary>执行过期业务数据和日志文件清理。</summary>
|
||||
/// <param name="context">Quartz 作业上下文。</param>
|
||||
public async Task Execute(IJobExecutionContext context)
|
||||
{
|
||||
await ERPTaskService.DeleByExpression(p => p.CreationTime < DateTime.Now.AddMonths(-12));
|
||||
await AgvTaskService.DeleByExpression(p => p.CreationTime < DateTime.Now.AddMonths(-12));
|
||||
await OperationLogService.DeleByExpression(p => p.CreationTime < DateTime.Now.AddMonths(-12));
|
||||
await ElevatorCountService.DeleByExpression(p=> p.CreationTime < DateTime.Now.AddDays(-10));
|
||||
|
||||
DirectoryInfo dir = new(Path.Combine($"{AppDomain.CurrentDomain.BaseDirectory}", "logs"));
|
||||
if (dir.Exists)
|
||||
{
|
||||
FileSystemInfo[] fileInfos = dir.GetFileSystemInfos();
|
||||
foreach (var fileInfo in fileInfos)
|
||||
{
|
||||
if (fileInfo.CreationTime <= DateTime.Now.AddMonths(-12))
|
||||
fileInfo.Delete();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user