interrompe a execução agendada do Spring se travar após algum tempo fixo

Eu usei o Spring FrameworkScheduled para agendar meu trabalho para ser executado a cada 5 minutos usando cron. Mas, em algum momento, meu trabalho aguarda infinitamente por um recurso externo e não posso colocar o tempo limite lá. Não posso usarfixedDelay como o processo anterior, em algum momento, entra no modo de espera infinitamente e eu tenho que atualizar os dados a cada 5 minutos.

Então, eu estava procurando qualquer opção no Spring FrameworkScheduled para interromper esse processo / thread após umfixed-time seja executado com sucesso ou não.

Encontrei abaixo a configuração que inicializouThreadPoolExecutor com 120 segundos parakeepAliveTime que eu coloquei@Configuration classe. Alguém pode me dizer que isso funcionará como eu esperava.

@Bean(destroyMethod="shutdown")
public Executor taskExecutor() {
    int coreThreads = 8;
    int maxThreads = 20;
    final ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(
            coreThreads, maxThreads, 120L, 
            TimeUnit.SECONDS, new LinkedBlockingQueue<Runnable>()
    );
    threadPoolExecutor.allowCoreThreadTimeOut(true);

    return threadPoolExecutor;
}

questionAnswers(3)

yourAnswerToTheQuestion