我有一个spring boot应用程序,我试图使用石英调度器来安排每天在特定时间运行的作业。以下是我的触发器代码。
DailyTimeIntervalScheduleBuilder scheduleBuilder = DailyTimeIntervalScheduleBuilder
.dailyTimeIntervalSchedule()
.startingDailyAt(TimeOfDay.hourAndMinuteFromDate(activeStartTime))
.endingDailyAfterCount(1)
.withMisfireHandlingInstructionFireAndProceed();
MutableTrigger trigger = scheduleBuilder.build();
我面临的问题是,作业被安排了,但从第二天开始。因此,例如,如果我将作业安排在 5月22日16:45,然后将该工作的首次开火时间设置为 5月23日16:45.
我已经尝试使用构建器与 withIntervalInHours(24)
而不是 endingDailyAfterCount(1)
但结果还是一样。
我不知道似乎是什么问题。
注意:无论我何时安排作业,这种行为都是一样的。 不管我什么时候安排作业,这种行为都是一样的 也就是说,不管我是在16: 45之前还是之后执行这段代码,作业都会被安排在第二天执行
我使用的是spring boot版本 1.5.10 和 spring-boot-starter-quartz 版本。2.2.5.释放
你可以试试下面的代码
CalendarIntervalScheduleBuilder schedule = CalendarIntervalScheduleBuilder
.calendarIntervalSchedule()
.inTimeZone(TimeZone.getDefault())
.withIntervalInDays((int) 1)
.withMisfireHandlingInstructionFireAndProceed();
Trigger trigger = TriggerBuilder
.newTrigger()
.startAt(startDateTime)
.withSchedule(schedule).build();
外地 startDateTime
请使用当前的日期时间。May 22 16:45
然后创建 Date
对象相应的。
并设置 timezone
也是,否则它将选择默认系统的时区。