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

时间: 2024-12-14 03:44:21

Quartz.NET学习系列(一)--- 快速入门的相关文章

Quartz.NET学习系列

Quartz.NET是一个开源的任务调度引擎,对于周期性的任务,持续性的任务提供了很好的支持,并支持持久化,集群等功能.一下是我这个对于Quartz.NET的学习记录: 源码下载地址http://yunpan.cn/cZcHVh7W3SB3X  访问密码d45a 由于博客编辑器的问题,部分代码可能显示不完全,可点击 这个按钮来获取完整的源码 Quartz.NET学习系列(一)--- 快速入门 Quartz.NET学习系列(二)--- 简单触发器 Quartz.NET学习系列(三)--- Cron

java新手小白必看的学习路线图,快速入门!

要学习Java,你首先得了解一下什么是java: java新手小白必看的学习路线图,快速入门!Javaweb是用Java技术来解决相关web互联网领域的技术总和.说的简单的就是写网站的一种语言.一般分为前端和后端两种方向,前端所做的东西就像幕前表演的演员,所做的就是让网页看起来顺眼,用起来顺心,而后端则属于处理数据,让程序处理速度.能力不断优化,属于幕后.前后端的配合才能是一个网站正式投入使用.最后,如果大家如果在自学遇到困难,想找一个java的学习环境,可以加入我们的java学习圈,点击我加入

MyBatis学习总结——MyBatis快速入门

MyBatis学习总结(一)--MyBatis快速入门 一.Mybatis介绍 MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录. 二.Mybatis入门 1. 用到的相关包      {Mybatis} mybat

BIML 101 - ETL数据清洗 系列 - BIML 快速入门教程 - 序

BIML 101 - BIML 快速入门教程 做大数据的项目,最花时间的就是数据清洗. 没有一个相对可靠的数据,数据分析就是无木之舟,无水之源. 如果你已经进了ETL这个坑,而且预算有限,并且有大量的活要做: 时间紧,任务多,是不是有点菊花一紧的感觉. 多少次,你对着几个月前自己写的代码在挠头, 多少次,指着屏幕上别人写的代码目瞪口呆,心中默默数有多少头草泥马.WTF. 不管你是做数据仓库,还是做数据转换,数据集成等等,大量的重复性的工作令人乏味: 但是,如果没有好的设计和遵从一致的流程,后期的

大数据技术之_20_Elasticsearch学习_01_概述 + 快速入门 + Java API 操作 + 创建、删除索引 + 新建、搜索、更新删除文档 + 条件查询 + 映射操作

一 概述1.1 什么是搜索?1.2 如果用数据库做搜索会怎么样?1.3 什么是全文检索和 Lucene?1.4 什么是 Elasticsearch?1.5 Elasticsearch 的适用场景1.6 Elasticsearch 的特点1.7 Elasticsearch 的核心概念1.7.1 近实时1.7.2 Cluster(集群)1.7.3 Node(节点)1.7.4 Index(索引 --> 数据库)1.7.5 Type(类型 --> 表)1.7.6 Document(文档 -->

MyBatis 学习总结 01 快速入门 OLD

一.Mybatis介绍 MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录.mybatis提供一种“半自动化”的ORM实现.这里的“半自动化”,是相对Hibernate等提供了全面的数据库封装机制的“全自动化”ORM实

C++ Primer 学习笔记_1_快速入门

 C++快速入门 --这个月的第一篇博客,献给我最爱的C++程序设计语言! 一.编写简单的C++程序 [cpp] view plaincopyprint? //main函数是唯一一个被操作系统显式调用的函数. int main() { /* *该返回值作为状态指示器,需要返回给操作系统! *以echo $?命令可以查看该返回值 *通常非零返回值表示有错误出现,由操作系统定义 */ return 0; } //main函数是唯一一个被操作系统显式调用的函数. int main() { /* *

Java学习:JDBC快速入门

本节类容 JDBC基本概念 快速入门 JDBC基本概念 概念: Java DataBase Connectivity Java 数据库连接,Java语言操作数据库 JDBC本质: 其实是官方(sun公司)定义的一套操作所有关系数据库的规则,即接口. 各个数据库厂商去实现这套接口,提供数据库驱动jar包. 我们可以使用这套接口(JDBC)编程,真正执行的代码是驱动jar包中的实现类. Person接口 Worker类 Person p = new Worler(); p.eat(); 快速入门 步

Quartz.NET开源作业调度框架系列(一):快速入门step by step-转

Quartz.NET是一个被广泛使用的开源作业调度框架 , 由于是用C#语言创建,可方便的用于winform和asp.net应用程序中.Quartz.NET提供了巨大的灵活性但又兼具简单性.开发人员可用它快捷的创建并执行一个自动化作业.Quartz.NET有很多特征,如:数据库支持,集群,插件,支持cron-like表达式等. 1 为什么选择Quartz.NET 在大部分的应用中,都需要对数据库进行定期备份 , 这个备份任务可以是每天晚上12:00或者每周星期二晚上12:00,或许仅仅每个月的最