То, что вы создали, похоже на интервал-таймер / планировщик, который продолжает выполняться после определенного интервала, независимо от предыдущих действий.
Попробуйте создать таймер вручную, создайте его в bean-компоненте, помеченном как инициализация @Startupпри запуске приложения, можете сослаться здесь далее.
//---
@Timeout
public void execute(Timer timer){
/*
-- Time consuming computation
*/
createTimer(sec, min, hour)
}
//---
Поэтому, как только оно будет создано при запуске приложения, оно будет создавать цепочку таймеров.Поэтому, даже если ваша задача занимает больше времени, чем обычно, следующая будет создана только после завершения / истечения предыдущего таймера.