Перенесите запланированное задание в планировщик весны
У меня есть класс Runnable, который планируется запускать с фиксированной скоростью (я использую планировщик Spring):
taskScheduler.scheduleAtFixedRate(this, startTime.toDate(),
PERIOD * 1000);
Могу ли я перенести задачу или динамически изменить период после его планирования?
1 ответ
Вы, вероятно, можете использовать следующее DynamicPeriodicTrigger
https://github.com/spring-projects/spring-integration-samples/blob/master/intermediate/dynamic-poller/src/main/java/org/springframework/integration/samples/poller/DynamicPeriodicTrigger.java
Поэтому вам нужно создать экземпляр DynamicPeriodicTrigger (с fixedRate = true) и поместить ссылку в taskScheduler.schedule(Runnable task, Trigger trigger);
метод.
Вы можете динамически изменять атрибуты объекта, чтобы изменить сроки выполнения на лету.