一、新建.NET Framework 4 控制台应用程序 ConsoleApP40
二、选择ConsoleApP40 右键 管理NuGet程序包(N)... 输入 Quartz(为了测试方便 请选择 2.5.0 版本)

添加QuartZ之后还会多出一个文件,job_scheduling_data_2_0.xsd 如图

第一种方式 硬编码方式设置定时任务
代码如下:
- using Quartz.Impl;
- using Quartz;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
-
- namespace ConsoleApP40
- {
- internal class Program
- {
- static void Main(string[] args)
- {
- #region 第一种方式 硬编码方式设置定时任务
- //第一种方式 硬编码方式设置定时任务
- 可以通过配置来设置间隔时间
- int a = 10;
- //IScheduler scheduler = StdSchedulerFactory.GetDefaultScheduler();
- //scheduler.Start();
- //var job = JobBuilder.Create
().Build(); - 可以通过配置来设置间隔时间
- var trigger = TriggerBuilder.Create().WithSimpleSchedule(m => m.WithIntervalInSeconds(a).RepeatForever()).StartNow().Build();
- //var trigger = TriggerBuilder.Create().WithSimpleSchedule(m => m.WithIntervalInSeconds(1).RepeatForever()).StartNow().Build();
- //scheduler.ScheduleJob(job, trigger);
- #endregion
-
- 创建调度器
- //ISchedulerFactory factory = new StdSchedulerFactory();
- //var scheduler = await factory.GetScheduler();
- //await scheduler.Start();
- 创建工作
- //var job = JobBuilder.Create
().WithIdentity("job1", "group1").Build(); - 创建触发器,设定触发时间,间隔时间,重复频率
- //var trigger = TriggerBuilder.Create().WithIdentity("trigger1", "group1").StartNow().WithSimpleSchedule(a => a.WithIntervalInSeconds(5).RepeatForever()).Build();
- 工作和触发器挂在调度器
- //await scheduler.ScheduleJob(job, trigger);
-
- Console.Read();
- }
- }
-
- public class HelloJob : IJob
- {
- private string name = string.Empty;
- public void Execute(IJobExecutionContext context)
- {
- Console.WriteLine("Quartz 任务调度执行----当前时间: {0} ", DateTime.Now);
- }
- }
-
-
- ///
- /// 工作要处理的内容
- ///
- //public class Myjob : IJob
- //{
- // public virtual Task Execute(IJobExecutionContext context)
- // {
- // return Console.Out.WriteLineAsync($"job工作了,{DateTime.Now}");
- // }
- //}
- }
测试:

第二种方式 job的配置文件配置 Quartz.Plugin.Xml.XMLSchedulingDataProcessorPlugin 类来处理这个xml文件,同时指定下quartz_jobs.xml的路径,如下所示:使用quartz_jobs.xml 配置文件来创建相关的定时任务需要的参数,在nuget中获取quartz框架的时候,在解决方案中多了一个xsd文件,这个xsd文件是用来写xml时做代码提示用的.
代码如下:
- using Quartz.Impl;
- using Quartz;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
-
- namespace ConsoleApP40
- {
- internal class Program
- {
- static void Main(string[] args)
- {
- #region 第一种方式 硬编码方式设置定时任务
- //第一种方式 硬编码方式设置定时任务
- 可以通过配置来设置间隔时间
- int a = 10;
- //IScheduler scheduler = StdSchedulerFactory.GetDefaultScheduler();
- //scheduler.Start();
- //var job = JobBuilder.Create
().Build(); - 可以通过配置来设置间隔时间
- var trigger = TriggerBuilder.Create().WithSimpleSchedule(m => m.WithIntervalInSeconds(a).RepeatForever()).StartNow().Build();
- //var trigger = TriggerBuilder.Create().WithSimpleSchedule(m => m.WithIntervalInSeconds(1).RepeatForever()).StartNow().Build();
- //scheduler.ScheduleJob(job, trigger);
- #endregion
-
-
-
- #region 第二种方式 job的配置文件配置 Quartz.Plugin.Xml.XMLSchedulingDataProcessorPlugin 类来处理这个xml文件,同时指定下quartz_jobs.xml的路径,如下所示:使用quartz_jobs.xml 配置文件来创建相关的定时任务需要的参数
- //job的配置文件配置 Quartz.Plugin.Xml.XMLSchedulingDataProcessorPlugin 类来处理这个xml文件,同时指定下quartz_jobs.xml的路径,如下所示:使用quartz_jobs.xml 配置文件来创建相关的定时任务需要的参数
- var factory = new StdSchedulerFactory(new System.Collections.Specialized.NameValueCollection()
- {
- {"quartz.plugin.xml.fileNames","~/quartz_jobs.xml" },
- {"quartz.plugin.xml.type","Quartz.Plugin.Xml.XMLSchedulingDataProcessorPlugin,Quartz"}
- });
- IScheduler scheduler = factory.GetScheduler();
- scheduler.Start();
- #endregion
-
-
- 创建调度器
- //ISchedulerFactory factory = new StdSchedulerFactory();
- //var scheduler = await factory.GetScheduler();
- //await scheduler.Start();
- 创建工作
- //var job = JobBuilder.Create
().WithIdentity("job1", "group1").Build(); - 创建触发器,设定触发时间,间隔时间,重复频率
- //var trigger = TriggerBuilder.Create().WithIdentity("trigger1", "group1").StartNow().WithSimpleSchedule(a => a.WithIntervalInSeconds(5).RepeatForever()).Build();
- 工作和触发器挂在调度器
- //await scheduler.ScheduleJob(job, trigger);
-
- Console.Read();
- }
- }
-
- public class HelloJob : IJob
- {
- private string name = string.Empty;
- public void Execute(IJobExecutionContext context)
- {
- Console.WriteLine("Quartz 任务调度执行----当前时间: {0} ", DateTime.Now);
- }
- }
-
-
- ///
- /// 工作要处理的内容
- ///
- //public class Myjob : IJob
- //{
- // public virtual Task Execute(IJobExecutionContext context)
- // {
- // return Console.Out.WriteLineAsync($"job工作了,{DateTime.Now}");
- // }
- //}
- }
使用xml配置job和trigger,首先添加quartz_jobs.xml文件,然后选中visual studio中的xml菜单栏,选中“架构”菜单项,如下:

配置一下 quartz_jobs.xml 复制到输出目录 为 始终复制,生成操作 内容即可
注意: 在quartz_jobs.xml中

测试:

修改quartz_jobs.xml中

