9

目前我的石英工作是通过这种方式触发的:

  • 首次安排作业时,作业将在 5 分钟后触发。
  • 该作业将被触发 5 次,时间间隔为 2 分钟。

因此,如果我在时间 1 安排我的作业,该作业将在 time1 + 5, time1 + 7, time1 + 9, time1 + 11,执行time1 + 13

  private org.quartz.Trigger makeTrigger() {
    org.quartz.ScheduleBuilder<org.quartz.SimpleTrigger> scheduleBuilder =
        org.quartz.SimpleScheduleBuilder.simpleSchedule()
            .withIntervalInMilliseconds(intervalMillis)
            .withRepeatCount(repeatCount);

    return org.quartz.TriggerBuilder.newTrigger()
        .withIdentity(key.getLeft(), key.getRight())
        .usingJobData(new org.quartz.JobDataMap(jobData))
        .startAt(dateTimeHelper.toStandardDate(startDateTime))
        .withSchedule(scheduleBuilder)
        .build();
  }

但我需要让工作不那么激进,所以我的问题是如何将触发器设置为具有指数时间间隔?这样在我在时间 1 安排作业后,作业将在以下时间执行: time1 + 5, time1 + 7, time1 + 11, time1 + 19, time1 + 35?

每次作业完成后我应该重新安排作业吗?

4

0 回答 0