Quartz.NET:.NET平台任务计划与调度程序

quartz

Quartz.NET是一个全功能的开源任务计划系统,不论小应用程序还是大规模企业系统,Quartz.NET都能够轻松应对。

Quartz.NET是由纯C#编写的的.NET类库,它由非常流行的开源Java任务计划框架Quartz移植而来。Quartz.NET从原始的Java项目中获得了很多帮助,包括它的创始人James House和其他项目贡献者。

特性

运行环境

  • Quartz.NET可以集成到其他程序中
  • Quartz.NET可以作为独立程序运行(在它自己的.NET虚拟机器实例中),通过.Net Remoting调用。
  • Quartz.NET可以实例化为独立程序中的一个节点(具有负载均衡与故障切换功能)

任务调度

任务在指定触发条件发生时调度执行,触发条件可以是以下条件的任意组合:

  • 在一天中的某个时刻(精确到毫秒)
  • 一周中的某些天
  • 一月中的某些天
  • 一年中的某些天
  • 不在日历中的某些天(比如商业假日)
  • 重复指定的次数
  • 重复执行,直到指定的时间/日期到达
  • 无限重复
  • 延时一段时间重复

任务由创建者指定名称,它们也可以分组归类,触发条件可以有名称与分组。为了简单地在调度器中组织它们,任务可以一次添加,而注册多个触发条件。

任务执行

  • 任务可以是任何的.NET类(实现了基本的IJob接口),这留给任务无限可能。
  • 任务对象可以由Quartz.NET实例化,也可以由程序进行实例化。
  • 当一个触发条件发生时,调度器通知0个或者更多.NET对象(实现JobListener与TriggerListener接口),在任务执行后,这些监听器同样可以收到通知。
  • 当任务完成,任务返回一个指示任务成功或者失败JobCompletionCode,JobCompletionCode也可以用于指示调度器基于任务的成功/失败代码执行动作,例如立即重新执行。

任务持久化

  • Quartz.NET设计有一个IJobStore接口,它的实现可以提供存储任务的多种机制。
  • 使用AdoJobStore,所有配置为“非易失”的任务与触发条件都可以通过ADO.NET存储进一个关系型数据库。
  • 使用RAMJobStore,所有的任务和触发条件都存储于RAM中,因此数据在程序关闭时将不会保存,但是好处是不需要任何外部的数据库。

集群功能

  • 故障切换
  • 负载均衡

监听器与插件

  • 应用程序可以通过实现一个或者多个监听器接口来捕捉调度事件,用以监控任务或触发条件的行为。
  • 插件机制可以用来为Quartz.NET添加功能,例如保存任务执行的历史或者从文件中加载任务与触发条件。
  • Quartz.NET配置有一些“原厂”的插件和监听器。

下载Quartz.NET

可以从NuGet上获取

或者从Source Forge下载

文档

可用文档(Quartz 2.x):

可用文档(Quartz 1.x):

协议

Quartz.NET遵循Apache 2.0开源协议发布。

官方网站:http://www.quartz-scheduler.net/
开源地址:https://github.com/quartznet/

1 1 收藏

资源整理者简介:Podolski

虽默不作声,但没离开过... 个人主页 · 贡献了8个资源 · 1 ·  


直接登录

推荐关注

按分类快速查找

关于资源导航
  • 伯乐在线资源导航收录优秀的工具资源。内容覆盖开发、设计、产品和管理等IT互联网行业相关的领域。目前已经收录 1439 项工具资源。
    推送伯乐头条热点内容微信号:jobbole 分享干货的技术类微信号:iProgrammer