Quartz.NET是一个开源的作业调度框架,是OpenSymphony 的 Quartz API的.NET移植,它用C#写成,可用于winform和asp.net应用中。它提供了巨大的灵活性而不牺牲简单性。你能够用它来为执行一个作业而创建简单的或复杂的调度。它有很多特征,如:数据库支持,集群,插件,支持cron-like表达式等等。  
      你曾经需要应用执行一个任务吗?这个任务每天或每周星期二晚上11:30,或许仅仅每个月的最后一天执行。一个自动执行而无须干预的任务在执行过程中如果发生一个严重错误,应用能够知到其执行失败并尝试重新执行吗?你和你的团队是用.NET编程吗?如果这些问题中任何一个你回答是,那么你应该使用Quartz.NET调度器。 Quartz.NET允许开发人员根据时间间隔(或天)来调度作业。它实现了作业和触发器的多对多关系,还能把多个作业与不同的触发器关联。整合了 Quartz.NET的应用程序可以重用来自不同事件的作业,还可以为一个事件组合多个作业.
   
   下面是官方的开发指南教程的中文版:英文版的参照官方网站(http://quartznet.sourceforge.net/tutorial.html)

Quartz.net官方开发指南 第一课:使用Quartz.net

使用scheduler之前应首先实例化它。使用SchedulerFactory可以完成scheduler的实例化

Quartz.net官方开发指南 第二课:Jobs And Triggers

JobDetail对象由Quartz客户端在Job被加入到scheduler时创建。它包含了Job的各种设置属性以及一个JobDataMap对象,这个对象被用来存储给定Job类实例的状态信息。 
Trigger对象被用来触发jobs的执行。你希望将任务纳入到进度,要实例化一个Trigger并且“调整”它的属性以满足你想要的进度安排。Triggers也有一个JobDataMap与之关联,这非常有利于向触发器所触发的Job传递参数。Quartz打包了很多不同类型的Trigger,但最常用的Trigge类是SimpleTrigger和CronTrigger。

Quartz.net官方开发指南 第三课:更多关于Jobs和JobDetails

在所实现的类成为真正的“Job”时,期望任务所具有的各种属性需要通知给Quartz。通过JobDetail类可以完成这个工作,这个类在前面的章节中曾简短提及过。现在,我们花一些时间来讨论Quartz中Jobs的本质和Job实例的生命周期。

Quartz.net官方开发指南 第四课:关于Triggers更多内容

同Job一样,trigger非常容易使用,但它有一些可选项需要注意和理解,同时,trigger有不同的类型,要按照需求进行选择  
Quartz.net官方开发指南 第五课: SimpleTrigger

如果需要让任务只在某个时刻执行一次,或者,在某个时刻开始,然后按照某个时间间隔重复执行,简单地说,如果你想让触发器在2007年8月20日上午11:23:54秒执行,然后每个隔10秒钟重复执行一次,并且这样重复5次。那么SimpleTrigger 就可以满足你的要求。

Quartz.net官方开发指南 第六课 : CronTrigger

如果你需要像日历那样按日程来触发任务,而不是像SimpleTrigger 那样每隔特定的间隔时间触发,CronTriggers通常比SimpleTrigger更有用。 
使用CronTrigger,你可以指定诸如“每个周五中午”,或者“每个工作日的9:30”或者“从每个周一、周三、周五的上午9:00到上午10:00之间每隔五分钟”这样日程安排来触发。甚至,象SimpleTrigger一样,CronTrigger也有一个StartTime以指定日程从什么时候开始,也有一个(可选的)EndTime以指定何时日程不再继续。

Quartz.net官方开发指南 第七课 : TriggerListeners和JobListeners

监听器是在scheduler事件发生时能够执行动作的对象。可以看出,TriggerListeners接收与triggers相关的事件,而JobListeners则接收与Job相关的事件。

Quartz.net官方开发指南 第八课:SchedulerListeners

SchedulerListeners同TriggerListeners及JobListeners非常相似,SchedulerListeners只接收与特定trigger 或job无关的Scheduler自身事件通知。 
Scheduler相关的事件包括:增加job或者trigger,移除Job或者trigger, scheduler内部发生的错误,scheduler将被关闭的通知,以及其他。

Quartz.net官方开发指南 第九课: JobStore

JobStore负责保持对所有scheduler “工作数据”追踪,这些工作数据包括:job(任务),trigger(触发器),calendar(日历)等。为你的Quartz scheduler选择合适的JobStore是非常重要的一步,幸运的是,如果你理解了不同的JobStore之间的差别,那么选择就变得非常简单。在提供产生scheduler 实例的SchedulerFactory的属性文件中声明scheduler所使用的JobStore(以及它的配置)

Quartz.net官方开发指南 第十课: 配置、资源使用以及SchedulerFactory

Quartz以模块方式构架,因此,要使它运行,几个组件必须很好的咬合在一起。幸运的是,已经有了一些现存的助手可以完成这些工作

Quartz.net官方开发指南 第十一课: 高级(企业级)属性

集群只能用在使用ADO.NET-Jobstore的情况。特新包括负载均衡和容错(如果JobDetail的"request recovery"标记被设置为true)

Quartz.net官方开发指南 第十二课:Quartz 的其他特性

Plug-Ins 插件 :Quartz提供了一个接口(ISchedulerPlugin)来插入附加的功能。 
  JobFactory :当触发器触发时,与之相关联的任务被Scheduler中配置的JobFactory所实例华。缺省的JobFactory只是简单地创建一个Job实例。你也许想创建自己的JobFactory实现,以完成诸如让应用的IoC 或者 DI容器产生/初始化job实例的功能。 
'Factory-Shipped' Jobs :Quartz也提供了一些可以在你的应用中使用的实用的Jobs,比如,发邮件、调用远程对象。这些外来的Job可以在Quartz.Jobs命名空间里中找到。

初识 .NET平台下作业调度器——Quartz.NET的更多相关文章

  1. .Net平台开源作业调度框架Quartz.Net

    Quartz.NET介绍: Quartz.NET是一个开源的作业调度框架,是OpenSymphony 的 Quartz API的.NET移植,它用C#写成,可用于winform和asp.net应用中. ...

  2. (转).Net平台开源作业调度框架Quartz.Net

    Quartz.NET介绍: Quartz.NET是一个开源的作业调度框架,是OpenSymphony 的 Quartz API的.NET移植,它用C#写成,可用于winform和asp.net应用中. ...

  3. 在springMVC框架中集成quartz作业调度器

    1.首先需要导入这几个jar包,如下图: 其中log4j,quartz,slf4j-api,slf4j-log4j12我是在项目中都引用了 2.引用完jar包后,新建一个作业调度类,执行作业调度逻辑, ...

  4. Net作业调度(一) -Quartz.Net入门

    背景 很多时候,项目需要在不同时刻,执行一个或很多个不同的作业. Windows执行计划这时并不能很好的满足需求了,迫切需要一个更为强大,方便管理,集群部署的作业调度框架. 介绍 Quartz一个开源 ...

  5. .NET平台下开源框架

    一.AOP框架Encase 是C#编写开发的为.NET平台提供的AOP框架.Encase 独特的提供了把方面(aspects)部署到运行时代码,而其它AOP框架依赖配置文件的方式.这种部署方面(asp ...

  6. .net平台下垃圾回收机制

    引言:使用c++进行编程,内存的处理绝对是让每个程序设计者最头疼的一块了.但是对于.net平台下使用c#语言开发系统,内存管理可以说已经不算是问题了.在.net平台下CLR负责管理内存,CLR中的垃圾 ...

  7. Hadoop作业调度器

    随着 MapReduce 的流行,其开源实现 Hadoop 也变得越来越受推崇.在 Hadoop 系统中,有一个组件非常重要,那就是调度器.调度器是一个可插拔的模块,用户可以根据自己的实际应用要求设计 ...

  8. net平台下连接池

    http://www.cnblogs.com/visionwang/archive/2012/11/16/2774203.html net平台下连接池概述 ADO.NET已经为我们提供这样的连接池管理 ...

  9. Ninject是一款.Net平台下的开源依赖注入框架

    Ninject是一款.Net平台下的开源依赖注入框架.按照官方说法,它快如闪电.超级轻量,且充分利用了.Net的最新语法,使用Lambda表达式代替Xml文件完成类型绑定.Ninject结构精巧,功能 ...

随机推荐

  1. 【CF】135 Div2 Choosing Capital for Treeland

    树形结构,挺有意思的题目.不难. /* 219D */ #include <iostream> #include <string> #include <map> # ...

  2. AC-BM算法原理与代码实现(模式匹配)

    AC-BM算法原理与代码实现(模式匹配) AC-BM算法将待匹配的字符串集合转换为一个类似于Aho-Corasick算法的树状有限状态自动机,但构建时不是基于字符串的后缀而是前缀.匹配 时,采取自后向 ...

  3. linux 下 epoll 编程

    转载自 Linux epoll模型 ,这篇文章讲的非常详细! 定义: epoll是Linux内核为处理大批句柄而作改进的poll,是Linux下多路复用IO接口select/poll的增强版本,它能显 ...

  4. 改善C#程序的50种方法

    为什么程序已经可以正常工作了,我们还要改变它们呢?答案就是我们可以让它们变得更好.我们常常会改变所使用的工具或者语言,因为新的工具或者语言更富生产力.如果固守旧有的习惯,我们将得不到期望的结果.对于C ...

  5. _GUN_SOURCE宏

    问题描述:在编译程序时,提示一个错误和一个警告. error:storage size of tz isn’t know: 其中tz是struct timezone类型的变量. warning:imp ...

  6. 转载--Linux命令top动态观察程序的变化

    转载:http://www.cnblogs.com/allen8807/archive/2010/11/10/1874001.html top:动态观察程序的变化 [root@linux ~]# to ...

  7. HDOJ --- 1258

    #include<map> #include<string> #include<cstdio> #include<cstring> #include&l ...

  8. 推荐一款自己的软件作品[豆约翰博客备份专家],新浪博客,QQ空间,CSDN,cnblogs博客备份,导出CHM,PDF(转载)

    推荐一款自己的软件作品[豆约翰博客备份专 豆约翰博客备份专家是完全免费,功能强大的博客备份工具,博客电子书(PDF,CHM和TXT)生成工具,博文离线浏览工具,软件界面美观大方,支持多个主流博客网站( ...

  9. chapter3:Collaborative Filtering ---------A Programmer's Guide to Data Mining

    Implicit rating and item based filtering Explicit rating: 用户明确的对item评分 Implicit rating:反之 明确评分所存在的问题 ...

  10. OJ题目分类

    POJ题目分类 | POJ题目分类 | HDU题目分类 | ZOJ题目分类 | SOJ题目分类 | HOJ题目分类 | FOJ题目分类 | 模拟题: POJ1006 POJ1008 POJ1013 P ...