12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- 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 Quartz;
- using Quartz.Impl;
- using SIMDP.Model;
- namespace SIMDP.BLL
- {
- public class Scheduler
- {
- string timeSpan = "0 0 11 * * ?"; //每天11点执行
- IScheduler schedulers;
- IJobDetail jobs;
- /// <summary>
- /// 开启定时任务
- /// </summary>
- public void Schedule()
- {
- try
- {
- List<MoSystemParameter> paraList = BLLFactory<BlSystemParameter>.Instance.GetAll();
- bool disk = paraList.Find((MoSystemParameter para) => para.ParameterName == "DiskCleaningMode").ParameterValid;
- bool years = paraList.Find((MoSystemParameter para) => para.ParameterName == "LifetimeClearance").ParameterValid;
- if (disk == false && years == false)
- {
- return;
- }
- //1.首先创建一个作业调度池
- ISchedulerFactory schedulerFactory = new StdSchedulerFactory();
- schedulers = schedulerFactory.GetScheduler();
- //2.创建出来一个具体的作业
- if (disk)
- {
- jobs = JobBuilder.Create<Job_Timespan>().UsingJobData("clearMode", "Disk").Build();
- }
- if (years)
- {
- jobs = JobBuilder.Create<Job_Timespan>().UsingJobData("clearMode", "Year").Build();
- }
- #region
- //DateTime StartTimelm = DateTime.ParseExact("20180716135400", "yyyyMMddHHmmss", System.Globalization.CultureInfo.CurrentCulture);
- DateTimeOffset startTime = DateBuilder.NextGivenSecondDate(DateTime.Now, 0);
- #endregion
- //3.创建并配置一个触发器 时间段A
- #region
- ICronTrigger triggers;
- triggers = (ICronTrigger)TriggerBuilder.Create().StartAt(startTime)
- .WithCronSchedule(timeSpan)
- .Build();
- #endregion
- //4.加入作业调度池中
- schedulers.ScheduleJob(jobs, triggers);
- //5.开始运行
- schedulers.Start();
- //schedulers[0].Start();
- }
- catch (Exception ex)
- {
- LogHelper.log.Error(string.Format("开启定时任务出现错误:{0}", ex.ToString()));
- }
- }
- /// <summary>
- /// 关闭定时任务
- /// </summary>
- /// <returns></returns>
- public bool Stop()
- {
- try
- {
- schedulers.Shutdown();
- return true;
- }
- catch (Exception ex)
- {
- LogHelper.log.Error(string.Format("关闭定时任务出现错误:{0}", ex.ToString()));
- return false;
- }
- }
- }
- }
|