快速业务通道

用Quartz进行作业调度 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15
dule Factory      SchedulerFactory schedulerFactory = new  StdSchedulerFactory();      // Retrieve a scheduler from schedule factory      Scheduler scheduler = schedulerFactory.getScheduler ();      String[] triggerGroups;      String[] triggers;      triggerGroups = scheduler.getTriggerGroupNames();      for (int i = 0; i < triggerGroups.length; i++)  {        triggers = scheduler.getTriggerNames(triggerGroups [i]);        for (int j = 0; j < triggers.length; j++)  {         Trigger tg = scheduler.getTrigger(triggers[j],  triggerGroups [i]);         if (tg instanceof SimpleTrigger &&  tg.getName().equals ("simpleTrigger")) {           ((SimpleTrigger)tg).setRepeatCount(100);           // reschedule the job            scheduler.rescheduleJob(triggers[j],  triggerGroups[i], tg);           // unschedule the job            //scheduler.unscheduleJob(triggersInGroup[j],  triggerGroups[i]);         }        }      }      // start the scheduler      scheduler.start();    }

用Quartz进行作业调度(5)

时间:2011-08-26 IBM Michael Lipton

运行 JDBCJobStore

在第一次运行示例时,触发器在数据库中初始化。图 1 显示了数据库在触发 器初始化之后但尚未击发 之前的情况。所以,基于 清单 4 中的 setRepeatCount() 方法,将 REPEAT_COUNT 设为 100,而 TIMES_TRIGGERED 是 0。在应用程序运行一段时间之后,应用程序停止。

图 1. 使用 JDBCJobStore 时数据库中的数据(运行前)

图 2 显示了数据库在应用程序停止后的情况。在这个图中,TIMES_TRIGGERED 被设为 19,表示作业 运行的次数。

图 2. 同一数据在 19 次迭代之后

当再次启动应用程序时,REPEAT_COUNT 被更新。这在图 3 中很明显。在图 3 中可以看到 REPEAT_COUNT 被更新为 81,所以新的 REPEAT_COUNT 等于前面的 REPEAT_COUNT 值减去前面的 TIMES_TRIGGERED 值。而且,在图 3 中还看到新的 TIMES_TRIGGERED 值是 7, 表示作业从应用程序重新 启动以来,又触发了 7 次。

图 3. 第 2 次运行 7 次迭代之后的数据

当再次停止应用程序之后,REPEAT_COUNT 值再次更新。如图 4 所示,应用程 序已经停止,还没有重 新启动。同样,REPEAT_COUNT 值更新成前一个 REPEAT_COUNT 值减去前一个 TIMES_TRIGGERED 值。

图 4. 再次运行触发器之前的初始数据

用Quartz进行作业调度(6)

时间:2011-08-26 IBM Michael Lipton

使用属性

正如在使用 JDBCJobStore 时看到的,可以用许多属性来调整 Quartz 的行为 。应当在 quartz.properties 文件中指定这些属性。清单 5 显示了用于 JDBCJobStore 示 例的属性:

清单 5. quartz.properties

org.quartz.threadPool.class =  org.quartz.simpl.SimpleThreadPool org.quartz.threadPool.threadCount = 10 org.quartz.threadPool.threadPriority = 5 org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThr ead =  true # Using RAMJobStore ## if using RAMJobStore, please be sure that you comment  out the following ## - org.quartz.jobStore.tablePrefix, ## - org.quartz.jobStore.driverDelegateClass, ## - org.quartz.jobStore.dataSource #o

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号