读书人

quartz定时部署使用感想

发布时间: 2012-09-16 17:33:16 作者: rapoo

quartz定时调度使用感想
在每月最后一天对这个月的所有数据统计过程中,发现用timer有很明显的问题,因为间隔时间随着月份的不同而不一致。后来在网上认识了quartz定时调度。

没有用网上大多数人用的spring结合quartz。而是单纯的通过tomcat自动启动servlet,调用quartz服务。

最初的时候到官网下载quartz2.1.6包,按照网上的例子试验才发现一个问题,部分代码如下,

 public void init() throws ServletException {      try {       //①创建一个JobDetail实例,指定SimpleJob       JobDetail jobDetail = new JobDetail("job1_1","jGroup1", PreOperationJob.class);       //②通过SimpleTrigger定义调度规则:马上启动,每2秒运行一次,共运行100次       CronTrigger cronTrigger=new CronTrigger("trigger1_1","tgroup1");       String cronExpresion=this.getInitParameter("cronExpresion");       cronTrigger.setCronExpression(cronExpresion);       //③通过SchedulerFactory获取一个调度器实例       SchedulerFactory schedulerFactory = new StdSchedulerFactory();       Scheduler scheduler = schedulerFactory.getScheduler();       scheduler.scheduleJob(jobDetail, cronTrigger);//④ 注册并进行调度       scheduler.start();//⑤调度启动       } catch (Exception e) {       e.printStackTrace();       }     }


应用这个例子,才发现有个问题,不能实例化JobDetail这个类,
JobDetail jobDetail = new JobDetail("job1_1","jGroup1", PreOperationJob.class);

后来找原因,打开quartz2.1.6的源码,才发现JobDetail没提供该构造方法。最后下载quartz1.8.6,打开源码发现这个里面的JobDetail这个类提供了该构造方法,后果断用换quartz1.8.6.解决成功。

读书人网 >开源软件

热点推荐