学业调度框架 Quartz.NET 2.0 beta 发布

由此全方位1年多日子的支付,Quartz.NET 2.0发布了beta版,对应于Java
Quartz的2.1本,下载地址
http://quartznet.sourceforge.net/download.html
。整个版本相对于1.0版进行了大量的修改,单元测试的代码更温馨(重构了再也多之接口),API是依据泛型和.NET
3.5 SP1之后的特色,例如DateTimeOffset。这是Quartz.NET
有史以来最老的、最值得兴奋之一个版本。

欠版本除了当性能上拥有升级外,增加了如下新特征:

  • Scheduler.Clear() 提供方便用于破除所有任务、触发器和日程的主意
  • Scheduler.ScheduleJobs((IDictionary> triggersAndJobs, boolean
    replace) 方法可批量增加任务及触发器
  • Scheduler.UnscheduleJobs(IList triggerKeys) 方法提供批量收回任务之
  • Scheduler.DeleteJobs(IList jobKeys),不用说,这是批量剔除任务的
  • Scheduler.CheckExists(JobKey jobKey) 和
    Scheduler.CheckExists(TriggerKey
    triggerKey)提供用于检测任务要字之唯一性
  • AdoJobStore allows one set of tables to be used by multiple distinct
    scheduler instances
  • AdoJobStore is now capable of storing non-core Trigger
    implementations without using BLOB columns, through the use of the
    new TriggerPersistenceDelegate interface, which can (optionally) be
    implemented by implementers of custom Trigger types.
  • Cron 表达式支持指定每月的末段一龙及尾声一完善,例如 L-3
    为每月的末梢三龙
  • 含有调度信息的 XML 文件增加了用来指定启动时与间隔时间的措施
  • XML 文件支持为触发器指定 priority 属性
  • 加核心职责 DirectoryScanJob ,之前的FileScanJob 添加了一个迷你mum
    age参数

2.0在API上吗举行了主要的改动,API返回值的聚合和泛型的运,消除歧义和冗余代码,掩藏/删除不应当明白为客户端的艺术,提高关注点分离,并引入和世界特定语言DSL的主干实体(jobs
and
triggers),自然就出矣兼容性等题材,我们今天来拘禁下还来什么主要的改动:

  • 切莫以支持.NET 1.1及2.0,需要Quartz.net 2.0至少需要.NET 3.5
    SP1,是出于采取了新的语言特征与类接口
  • 森集体接口的归值Array更改为泛型的IList和ISet,例如GetJobGroupNames():
    string[] 现在改动为 GetJobGroupNames(): IList
    ,现在之所以来标识Jobs和Triggers 现在是根据JobsKey和TriggersKey,Keys
    包含一个Name和一个Group。操作特定jobs/triggers
    的法以Keys作为参数。例如GetTrigger(TriggerKey key): ITrigger
    替换了GetTrigger(string name, string group):
    Trigger,ITrigger现在是一个接口而无是类似。ISimpleTrigger,
    ICronTrigger也同等。新的 DSL/builder-based API 组织Jobs和Triggers。

     IJobDetail job = JobBuilder.Create<SimpleJob>()
.WithIdentity(“job1”, “group1”) .Build();

     ITrigger trigger = TriggerBuilder.Create()
.WithIdentity(“trigger1”, “group1”) .StartAt(DateBuilder.FutureDate(2,
IntervalUnit.HOURS)) .WithSimpleSchedule(x =>
x.RepeatHourlyForever()) .ModifiedByCalendar(“holidays”) .Build();

  • JobInitializationPlugin
    已经移除,用XMLSchedulingDataProcessorPlugin替代
  • Microsoft’s Oracle drivers已经不复支持,使用10g 或者 11g ODP.NET
    drivers替代
  • 数据库的Sechema已经修改,需要用database目录下之脚本吧1.x之Schema升级至2.0

参考文章:

  • Quartz.NET – Version Migration
    Guide 
  • Java Quartz’s
    documentation.

相关文章