Java Quartz 2.2.1 - 时间表

Java Quartz 2.2.1 - Schedule

您好,以下代码每 60 秒触发一次。

我怎样才能改变它,让它永远在每天凌晨 4 点触发一次。

我使用 Quartz 2.2.1 使用 Tomcat 7.0.53

Trigger trigger = TriggerBuilder
.newTrigger()
.withIdentity("TestTrigger", "group1")
.withSchedule(SimpleScheduleBuilder.simpleSchedule().withIntervalInSeconds(interval_seconds).repeatForever())
.build();

我查看了文档示例,但总是出现错误。

您可以在您想要的时间(凌晨 4 点)使用 startAt(Date triggerStartTime) 方法,然后每 24 小时永远重复一次

     Trigger trigger = newTrigger() 
         .withSchedule(simpleSchedule()
             .withIntervalInHours(24)
             .repeatForever())
         .startAt(new SimpleDateFormat("dd/MM/yyyy hh:mmaaa").parse("24/01/2015 04:00AM"))
         .build();

使用 Cron-based Trigger:

Trigger trigger = TriggerBuilder.newTrigger() 
   .withSchedule(cronSchedule("0 0 4am * * ?"))
   .build();

如果您想要更简单的方法来创建日期,请使用 DateBuilder 使用您想要的参数创建日期。 dateOf( 或 todayAt) 应该有效。

类似于:

.startAt(DateBuilder.dateOf(4, 0, 0))