Quartz.NET

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
  
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和JobDetailsasp.net

 在所实现的类成为真正的“Job”时,指望任务所具备的各类属性须要通知给Quartz。经过JobDetail类能够完成这个工做,这个类在前面的章节中曾简短说起过。如今,咱们花一些时间来讨论Quartz中Jobs的本质和Job实例的生命周期。
post

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

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

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

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

    若是你须要像日历那样按日程来触发任务,而不是像SimpleTrigger 那样每隔特定的间隔时间触发,CronTriggers一般比SimpleTrigger更有用。
使用CronTrigger,你能够指定诸如“每一个周五中午”,或者“每一个工做日的9:30”或者“从每一个周1、周3、周五的上午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命名空间里中找到。

相关文章
相关标签/搜索