остановить выполнение по расписанию Spring, если оно зависает через некоторое фиксированное время

Я использовал Spring Framework'sScheduled планировать свою работу каждые 5 минут, используя cron. Но иногда моя работа бесконечно ждет внешнего ресурса, и я не могу поставить там таймаут. Я не могу использоватьfixedDelay так как предыдущий процесс иногда переходит в режим ожидания бесконечно, и мне приходится обновлять данные каждые 5 минут.

Поэтому я искал любой вариант в Spring FrameworkScheduled чтобы остановить этот процесс / поток послеfixed-time либо он работает успешно, либо нет.

Я нашел ниже настройки, которые инициализированыThreadPoolExecutor с 120 секундами дляkeepAliveTime который я положил в@Configuration учебный класс. Может кто-нибудь сказать мне, будет ли эта работа, как я ожидал.

@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;
}

Ответы на вопрос(3)

Ваш ответ на вопрос