4

朋友们,我使用石英调度程序从应用程序部署和连续运行开始每 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();

但它有时有时不工作。请告诉我我是否在这里遗漏了什么?

4

3 回答 3

12

代替

0 0/5 * * * ?

采用

0 */5 * * * *

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

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

于 2012-02-01T12:47:32.463 回答
5

不要使用 Cron 计划,而是使用简单的计划:

Trigger trigger = newTrigger().
  withIdentity("Id1Trigger", "Rome").
  withSchedule(
    simpleSchedule().
      withIntervalInMinutes(5).
      repeatForever()
  ).build();
于 2012-02-01T12:53:01.333 回答
0

您有很多方法,其中一种是使用触发器构建器,例如

trigger = newTrigger()
    .withIdentity("mytrigger", "group1")
    .startNow()
    .withSchedule(simpleSchedule()
            .withIntervalInMinutes(5)
            .repeatForever())
    .build();
于 2012-02-01T12:53:49.077 回答