Мне интересно, есть ли функция/метод для создания заданий, которые запускаются на случайных времени. Под этим я подразумеваю, что если я установил график cron, который будет запускаться каждый понедельник в 10.00 и с учетом интервала времени, скажем, 30 минут, триггер всегда будет исчезать с 9.30 ~ 10.30. Например, это график cron.Quartz Scheduler Cron Triggers
schedule.setCronSchedule("0 0 10 ? * MON");
trigger = newTrigger()
.withIdentity(triggerId)
.startNow() // <~~~~~~~~~~~~~~~ ???
.withDescription(schedule.getCronSchedule())
.withSchedule(cronSchedule(schedule.getCronSchedule())).build();
Если у меня есть переменная с определенным диапазоном в минутах, я могу настроить ее на случайное срабатывание? И под этим я имею в виду не просто взять строку расписания cron и ее реконфигурировать, но использовать метод для запуска события каждый раз, основываясь на случайном диапазоне, поэтому первый понедельник может быть запущен в 10.01 секунд понедельника, может быть запущен в 9.46 и т. Д.
Заранее спасибо.
Как насчет того, чтобы установить расписание cron на 9:30, а затем ваша задача подождать случайное число секунд (0-3600), прежде чем оно это сделает? Такая рандомизация действительно не является частью cron. – dcsohl
и как это можно применить к java вместо bash? Я видел документацию о кварце, я не видел никакого метода сна/ожидания – bill
Это не часть кварца; он встроен в язык Java! Используйте [Таймер] (https://docs.oracle.com/javase/7/docs/api/java/util/Timer.html) или [ScheduledExecutorService] (https://docs.oracle.com/javase/ 7/документы/API/Java/Util/параллельное/ScheduledExecutorService.html). – dcsohl