一、使用nuget安装所需要的包
Install-Package Quartz
二、实现自己的job继承IJob
public class FirstJob : IJob { public void Execute(IJobExecutionContext context) { try { Common.LogHelper.WriteLog(DateTime.Now.ToString() + ":执行计划开始");//写log //你需要执行的计划任务 } catch (Exception ex) { Common.LogHelper.WriteError(DateTime.Now.ToString() + ":执行计划出现了错误;", ex); throw; } }
三、启动计划任务
public void Start() { try { IScheduler scheduler = StdSchedulerFactory.GetDefaultScheduler();//获取默认的scheduler string quartzExperssion= ConfigurationManager.AppSettings["QuartzExpression"]; if (string.IsNullOrWhiteSpace(quartzExperssion)) { quartzExpression = "0 0 2 * * ?";//默认成凌晨两点 } scheduler.Start(); IJobDetail job = JobBuilder.Create<HistoryDataMoveJob>() .WithIdentity("我的计划", "计划") .Build(); ITrigger trigger = TriggerBuilder.Create() .WithIdentity("我的计划", "计划") .StartNow() .WithCronSchedule(clocktimeExpression)//0 0 12 * * ? .Build(); scheduler.ScheduleJob(job, trigger); Common.LogHelper.WriteLog(DateTime.Now.ToString() + ":启动任务计划"); } catch (Exception ex) { Common.LogHelper.WriteError(DateTime.Now.ToString() + ":启动计划任务失败", ex); } }
四、本来是想寄宿在IIS上的,结果发现,IIS设置了闲置回收,quartz进程被IIS回收杀掉了,并没有执行,系统原因不能关掉闲置回收功能,所以将quartz又改造,寄宿到windows服务上