Задача Spring @schedule не возвращает

В моем приложении есть задача Spring @scheduled, которая запускается каждые 2 минуты. В некоторых ситуациях задача никогда не возвращается, поэтому после этого задача не будет выполняться.

@Scheduled(fixedDelay = ....)
private void task() {
}

В любом случае, установить тайм-аут для запланированной задачи, чтобы принудительно завершить ее через определенный период времени?


person user2777473    schedule 07.08.2018    source источник
comment
Я бы порекомендовал вам использовать fixedRate вместо fixedDelay.   -  person Rence Abishek    schedule 07.08.2018


Ответы (1)


Возможно, вы хотите использовать фиксированную скорость вместо фиксированной задержки:

@Scheduled(fixedRate = 1000)
private void task() {
}

При использовании фиксированной скорости начало выполнения задачи не ожидает завершения предыдущего выполнения. Также рассмотрите возможность использования Future во внутренней бизнес-логике для предотвращения зависания медленной задачи в течение длительного времени.

person Lorelorelore    schedule 07.08.2018