使用Java Quartz,我能够安排一份工作。然后我尝试了类似下面的代码,以便能够添加其他工作。现在似乎都没有在规定的时间触发。我做错了什么?
我想使用以下方法,而不是xml配置。
scheduler = StdSchedulerFactory.getDefaultScheduler();
JobDetail jobFull = new JobDetail("job1", "group1", IntegrationJobFull.class);
JobDetail jobPartial = new JobDetail("job2", "group1", IntegrationJobPartial.class);
CronTrigger triggerFull = new CronTrigger("trigger1", "group1", "job1", "group1", "0 15 3 * * ?");
CronTrigger triggerPartial = new CronTrigger("trigger2", "group1", "job2", "group1", "* 0,30 * * * ?");
scheduler.addJob(jobFull, false);
scheduler.addJob(jobPartial, false);
scheduler.scheduleJob(triggerFull);
scheduler.scheduleJob(triggerPartial);
scheduler.start();
答案 0 :(得分:2)
上面创建的JobDetail
非持久性,这意味着addJob
方法将失败。使用重载的scheduleJob
方法关联作业和触发器。
删除addJob
和scheduleJob
来电并替换为:
scheduler.scheduleJob(jobFull, triggerFull);
scheduler.scheduleJob(jobPartial, triggerPartial);
此外,*
已指定trigger2的秒字段。这意味着作业将在指定的分钟内每秒触发一次。我不确定这是不是意图。
所需的cron表达式可能是:
"0 0,30 * * * ?"