Quartz.NET学习系列(一)

Quartz.NET是一个任务调度的开源框架,官网地址是帮助文档地址是

目前Quartz.NET的最新版本是2.3.1,本系列以后的文章都是基于这个版本的。先从官网下载2.3.1版本的rar,可在rar目录Src/Quartz.Examples下找到官方提供的一系列的例子,包括触发器操作,任务中断,数据库操作,集群等等。

Quartz.NET的应用场景非常多,只要和时间相关的操作均可以引用上去。比如每天定时任务(社保定时对账,自动收费定时确认),守护进程(自助机的监控)等等。

下面开始简单的例子:

1.首先引用相关dll:

2.初始化日志

在程序启动的时候初始化日志配置(我都是采用代码配置应用程序)

LogManager.Adapter = new ConsoleOutLoggerFactoryAdapter { Level = LogLevel.Info }; 3.编写代码

新建一个任务类HelloJob,,继承IJob,每个任务均需要继承自IJob

public class HelloJob : IJob{private ILog _log = LogManager.GetLogger(typeof(HelloJob));public void Execute(IJobExecutionContext context){_log.Info("Hello World!");}}

编写调用代码

public class SimpleExample{public static void Run(){ILog log = LogManager.GetLogger(typeof (SimpleExample));// 获取计划工厂ISchedulerFactory sf = new StdSchedulerFactory();IScheduler sched = sf.GetScheduler();//定义任务IJobDetail job = JobBuilder.Create<HelloJob>().WithIdentity("job1", "group1").Build();//定义触发器ITrigger trigger = TriggerBuilder.Create().WithIdentity("trigger1", "group1").StartNow().WithSimpleSchedule(x => x.WithIntervalInSeconds(1).RepeatForever()).Build();//任务和触发器整合sched.ScheduleJob(job, trigger);//启动计划log.Info("——- 开始计划 —————–");sched.Start();log.Info("——- 等待20秒—————–");Thread.Sleep(TimeSpan.FromSeconds(20));sched.Shutdown(true);log.Info("——- 关闭计划 ———————");}}这段代码的意思是每个1秒钟一直执行HelloJob任务,客户端调用Run就可执行任务了。

Quartz.NET 对于类的使用来说主要分为Shcedule(计划) Trigger(触发器) Job(任务)。

Job就是你需要执行的代码,Trigger就是Job的执行配置,Schedule就是承载Trigger和Job的容器。

接下来会分别学习Trigger的两个种类,计划的配置等等。

最好的节约是珍惜时间,最大的浪费是虚度年华。

Quartz.NET学习系列(一)

相关文章:

你感兴趣的文章:

标签云: