快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15
ntext) throws   JobExecutionException {      System.out.println("In SimpleQuartzJob - executing  its JOB at "          + new Date() + " by " +  context.getTrigger().getName());    } }

请注意,execute 方法接受一个 JobExecutionContext 对象作为参数。这个 对象提供了作业实例的运 行时上下文。特别地,它提供了对调度器和触发器的访问,这两者协作来启动作 业以及作业的 JobDetail 对象的执行。Quartz 通过把作业的状态放在 JobDetail 对象中并让 JobDetail 构造函数启动一个作业 的实例,分离了作业的执行和作业周围的状态。JobDetail 对象储存作业的侦听 器、群组、数据映射、描 述以及作业的其他属性。

示例 2:简单触发器

触发器可以实现对任务执行的调度。Quartz 提供了几种不同的触发器,复杂 程度各不相同。清单 2 中的 SimpleTrigger 展示了触发器的基础:

清单 2. SimpleTriggerRunner.java

public void task() throws SchedulerException    {      // Initiate a Schedule Factory      SchedulerFactory schedulerFactory = new  StdSchedulerFactory();      // Retrieve a scheduler from schedule factory      Scheduler scheduler = schedulerFactory.getScheduler ();      // current time      long ctime = System.currentTimeMillis();      // Initiate JobDetail with job name, job group, and  executable job  class      JobDetail jobDetail =       new JobDetail("jobDetail-s1", "jobDetailGroup-s1",  SimpleQuartzJob.class);      // Initiate SimpleTrigger with its name and group  name      SimpleTrigger simpleTrigger =       new SimpleTrigger("simpleTrigger", "triggerGroup- s1");      // set its start up time      simpleTrigger.setStartTime(new Date(ctime));      // set the interval, how often the job should run  (10 seconds here)      simpleTrigger.setRepeatInterval(10000);      // set the number of execution of this job, set to  10 times.      // It will run 10 time and exhaust.      simpleTrigger.setRepeatCount(100);      // set the ending time of this job.      // We set it for 60 seconds from its startup time  here      // Even if we set its repeat count to 10,      // this will stop its process after 6 repeats as  it gets it endtime  by then.      //simpleTrigger.setEndTime(new Date(ctime + 60000L));      // set priority of trigger. If not set, the default  is 5      //simpleTrigger.setPriority(10);      // schedule a job with JobDetail and Trigger      scheduler.scheduleJob(jobDetail, simpleTrigger);      // start the scheduler      scheduler.start();    }

清单 2 开始时实例化一个 SchedulerFactory,获得此调度器。就像前面讨论 过的,创建 JobDetail 对象时,它的构造函数要接受一个 Job 作为参数。顾名思义,SimpleTrigger 实 例相当原始。在创建对 象之后,设置几个基本属性以立即调度任务,然后每 10 秒重复一次,直到作业 被执行 100 次。

还有其他许

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号