Quartz.NET学习系列(一)--- 快速入门

        Quartz.NET是一个任务调度的开源框架,官网地址是http://www.quartz-scheduler.net/index.html 帮助文档地址是http://www.quartz-scheduler.net/documentation/index.html

目前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的两个种类,计划的配置等等。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。