1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- using Quartz;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using ProjectBase.Data.BaseDAL;
- using ProjectBase.Data.Logs;
- using SIMDP.Model;
- using ProjectBase.Data.hardDisk;
- using System.IO;
- namespace SIMDP.BLL
- {
- class Job_Timespan : IJob
- {
- //定时任务计划类
- public void Execute(IJobExecutionContext context)
- {
- try
- {
- String strData = context.JobDetail.JobDataMap.GetString("clearMode");
- //执行任务
- if (strData == "Disk") //根据磁盘空间清理数据
- {
- MoSystemParameter mo = BLLFactory<BlSystemParameter>.Instance.FindSingle(" parameter_name = 'DiskCleaningMode'");
- double percent = 0.0;
- //获取磁盘空间
- List<HardDiskPartition> hardDiskList = new List<HardDiskPartition>();
- hardDiskList = HardDiskInfo.GetDiskListInfo();
- if (hardDiskList == null)
- {
- return;
- }
- foreach (HardDiskPartition item in hardDiskList)
- {
- string currentWorkPath = Directory.GetDirectoryRoot(System.Environment.CurrentDirectory);
- if (!item.PartitionName.Equals(currentWorkPath.Substring(0, 2)))
- continue;
- percent = item.UseSpace / item.SumSpace;
- }
- //磁盘空间超过或等于设定值则清理数据,清理数据库中最早一天的数据
- if (percent >= Convert.ToDouble(mo.ParameterValue))
- {
- MoProductData data = BLLFactory<BlProductData>.Instance.FindSingle("1=1", "Order By rule_time ASC");
- if (data != null)
- {
- DateTime time = data.RuleTime.AddDays(1);
- bool flag = BLLFactory<BlProductData>.Instance.DeleteByCondition(string.Format("rule_time < '{0}'", time.ToString("yyyy-MM-dd")));
- }
- }
- }
- else if (strData == "Year") //根据设定年限清理数据,例如今年为2019年,年限为2年,只保留2019年和2018年的数据
- {
- MoSystemParameter mo = BLLFactory<BlSystemParameter>.Instance.FindSingle(" parameter_name = 'LifetimeClearance'");
- int year = Convert.ToInt32(DateTime.Now.Year) - Convert.ToInt32(mo.ParameterValue);
- bool flag = BLLFactory<BlProductData>.Instance.DeleteByCondition(string.Format("YEAR(rule_time) <= '{0}'", year.ToString()));
- }
- }
- catch (Exception ex)
- {
- LogHelper.log.Error(string.Format("执行定时任务出现错误:{0}", ex.ToString()));
- }
- }
- }
- }
|