Quartz Scheduler for java-如何每5分钟运行一次作业

时间:2012-02-01 12:45:17

标签: java servlets quartz-scheduler crontrigger cron-task

友   我正在使用石英调度程序,每隔5分钟运行一次任务,从应用程序部署开始连续运行,所以我写了代码:

SchedulerFactory sf = new StdSchedulerFactory();
Scheduler sche = sf.getScheduler();

JobDetail job = newJob(RomeJob.class).withIdentity("Id1", "Rome").build();
CronTrigger trigger = newTrigger().withIdentity("Id1Trigger", "Rome").withSchedule(cronSchedule("0 0/5 * * * ?"))
.build();
sche.scheduleJob(job, trigger);
sche.start();

但它的工作有时不会。请告诉我,我在这里遗失了什么?

3 个答案:

答案 0 :(得分:6)

而不是

0 0/5 * * * ?

使用

0 */5 * * * *

编辑:这会导致您的任务在每分钟0秒运行,可以被5整除。

编辑2: 0/5仅表示分钟0和5。

答案 1 :(得分:4)

请勿使用Cron计划,而应使用简单的计划:

Trigger trigger = newTrigger().
  withIdentity("Id1Trigger", "Rome").
  withSchedule(
    simpleSchedule().
      withIntervalInMinutes(5).
      repeatForever()
  ).build();

答案 2 :(得分:0)

你有很多方法,其中一个是使用触发器构建器,如

trigger = newTrigger()
    .withIdentity("mytrigger", "group1")
    .startNow()
    .withSchedule(simpleSchedule()
            .withIntervalInMinutes(5)
            .repeatForever())
    .build();