Методы API охватывают несколько простых (каждый X, в X) и не очень простых (дни A, B, C в X, ежемесячно в X) сценариев, но ваш немного превосходит это.
Выможно попробовать выполнить эту задачу, чтобы запланировать выполнение задания каждые 5 минут, с 8:00 до 10:00:
Trigger trigger = TriggerBuilder.newTrigger() // identity, job, etc.
.withSchedule(simpleSchedule()
.withIntervalInMinutes(5)
.repeatForever())
.startAt(DateBuilder.tomorrowAt(8,0,0))
.endAt(DateBuilder.tomorrowAt(10,0,0))
.build();
, а затем включить некоторую логику в свою работу, чтобы перенастроить себя на следующий день таким же образом, по окончании.
В качестве альтернативы, вы можете просто запланировать его запуск каждые 5 минут навсегда, и проверить работу, если это между 8:00 и 10:00, прежде чем делать что-либо.
Или вы могли бы использовать, вы знаете ... cronвыражение:
Trigger trigger = TriggerBuilder.newTrigger() // identity, job, etc.
.withSchedule(cronSchedule("0 0/5 8-10 * * ? *"))
.startAt(DateBuilder.evenMinuteDateAfterNow())
.build();
Что делает именно то, что вы хотите - для этого нужны выражения cron.