《.Net框架 系列》- 作业调度框架Quartz.Net
2018-01-10 00:00
525 查看
安装
下载。https://sourceforge.net/projects/quartznet/files/quartznet/找到动态库
Common.Logging.Core.dll
Common.Logging.dll
Quartz.dll
引入到项目
一直执行
JobDemo.cspublic class JobDemo : IJob { /// <summary> /// 这里是作业调度每次定时执行的方法 /// </summary> /// <param name="context"></param> public void Execute(IJobExecutionContext context) { Console.WriteLine(DateTime.Now.ToString("r")); } }
Program.cs
static void Main(string[] args) { /* 下面代码执行结果是, 每三秒执行一次JobDemo中的Execute,如果程序不停止,无休无止执行 */ //1.0创建一个作业调度池 ISchedulerFactory factory = new StdSchedulerFactory(); IScheduler _scheduler = factory.GetScheduler(); //2.0创建出一个具体的作业 IJobDetail job = JobBuilder.Create<JobDemo>().Build(); //3.0创建并配置一个触发器 ISimpleTrigger trigger = (ISimpleTrigger) TriggerBuilder.Create() .WithSimpleSchedule(x => x.WithIntervalInSeconds(3).WithRepeatCount(int.MaxValue)) .Build(); //4.0加入作业调度池中 _scheduler.ScheduleJob(job, trigger); //5.0开始运行 _scheduler.Start(); Console.ReadKey(); }
定时执行
在每小时的第10,20,25,26,33,54分钟,每分钟的第1,10,14秒执行一次。那么上面显然是不能满足的。这是我就把cron-like表达式引入进来,以实现各种时间纬度的调用Program.cs
static void Main(string[] args) { //1.首先创建一个作业调度池 ISchedulerFactory factory = new StdSchedulerFactory(); IScheduler _scheduler = factory.GetScheduler(); //2.创建出一个具体的作业 IJobDetail job = JobBuilder.Create<JobDemo>().Build(); //NextGivenSecondDate:如果第一个参数为null则表示当前时间往后推迟2秒的时间点 DateTimeOffset startTime = DateBuilder.NextGivenSecondDate(DateTime.Now.AddSeconds(1), 2); DateTimeOffset endTime = DateBuilder.NextGivenSecondDate(DateTime.Now.AddYears(2), 3); //3.创建并配置一个触发器 ICronTrigger trigger = (ICronTrigger) TriggerBuilder.Create() .StartAt(startTime) .EndAt(endTime) .WithCronSchedule("1,10,14 10,20,25,26,33,54 * * * ?").Build(); //4.加入作业调度池 _scheduler.ScheduleJob(job, trigger); //5.开始执行 _scheduler.Start(); //挂起2天 Thread.Sleep(TimeSpan.FromDays(2)); //2天后关闭作业调度,讲不在执行 _scheduler.Shutdown(); Console.ReadKey(); }
相关文章推荐
- Quartz.NET开源作业调度框架系列(五):AdoJobStore保存job到数据库
- Quartz.NET开源作业调度框架系列(三):IJobExecutionContext 参数传递
- Quartz.NET开源作业调度框架系列(二):CronTrigger
- Quartz.NET开源作业调度框架系列(五):AdoJobStore保存job到数据库
- Quartz.NET开源作业调度框架系列
- Quartz.NET开源作业调度框架系列(四):Plugin Job-转
- Quartz.NET是一个开源的作业调度框架(转自张善友博客)
- 作业调度框架 Quartz.NET 2.0 教程
- Quartz.NET(作业调度框架) 学习笔记(三)【Cron 表达式】
- 作业调度框架 Quartz.NET 2.0 教程
- 开源的作业调度框架 - Quartz.NET
- Quartz.NET 2.0 作业调度框架使用
- Quartz.NET一个开源的作业调度框架
- 作业调度框架 Quartz.NET 2.0 beta 发布
- 开源的作业调度框架 - Quartz.NET
- 开源的作业调度框架 - Quartz.NET
- 开源作业调度框架 - Quartz.NET - 实战使用2
- 作业调度框架 Quartz.NET 2.0 StepByStep
- quartz.net结合Topshelf实现windows service服务托管的作业调度框架
- 作业调度框架 Quartz.NET 2.0 StepByStep