我正在尝试在Quartz Scheduler API中构建一个触发器,该触发器应按照以下条件执行。


从特定日期开始(2012年1月25日)
从预定义时间(08.00.00 AM)开始
每周。
可以安排为每隔一周或每三周(如果不是每周)
在一周的这些特定日子(星期一,星期二,星期五等)


我创建了以下表达式

newTrigger().withIdentity(cronTriggerDTO.getTiggerId(), "simpleGroup")
        .startAt(getTriggerExecutionDate(cronTriggerDTO))
        .withSchedule(calendarIntervalSchedule().withIntervalInWeeks
                  (cronTriggerDTO.getWeeklyInterval())).build();


但是我很困惑如何在周的特定日期添加条件以执行此触发器

在这方面的任何帮助将是巨大的。

提前致谢

最佳答案

使用DailyTimeIntervalScheduleBuilder

Set daysOfWeek = new HashSet();
daysOfWeek.add(1);
daysOfWeek.add(2);
daysOfWeek.add(5);

newTrigger().withIdentity(cronTriggerDTO.getTiggerId(), "simpleGroup")
    .startAt(getTriggerExecutionDate(cronTriggerDTO))
    .withSchedule(dailyTimeIntervalSchedule()
       .onDaysOfTheWeek(daysOfWeek)
          .startingDailyAt(new TimeOfDay(8,0)))
    .build();

09-25 15:03