quartz.net 使用(一)-执行定时计划任务

一、使用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服务上

posted @ 2016-08-17 16:49  hello_myworld  阅读(503)  评论(0编辑  收藏  举报