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

JMo*_*sin 5 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();
Run Code Online (Sandbox Code Playgroud)

但是有时它不能正常工作。请告诉我我是否在这里缺少什么?

Tom*_*icz 8

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

Trigger trigger = newTrigger().
  withIdentity("Id1Trigger", "Rome").
  withSchedule(
    simpleSchedule().
      withIntervalInMinutes(5).
      repeatForever()
  ).build();
Run Code Online (Sandbox Code Playgroud)


小智 6

代替

0 0/5 * * * ?
Run Code Online (Sandbox Code Playgroud)

使用

0 */5 * * * *
Run Code Online (Sandbox Code Playgroud)

编辑:这导致您的任务在每分钟0秒被5整除的情况下运行。

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

  • 在最新版本的 Quartz 中: ' 0 */5 * * * ? ' (2认同)