У меня есть приложение Spring Boot, в котором выполняется определенное количество заданий в определенное время дня (настроено CRON). Теперь я обнаружил, что приложение работает, но запланированные задания не выполняются. Есть ли способ добавить тайм-аут к задаче, аннотированной с помощью @Scheduled в Spring.Как отключить Spring Spring @Scheduled Thread
Так что, даже если задание заблокировано или ждет, его можно убить, чтобы другие потоки могли выполняться плавно. Поток может подождать определенное время, а затем, если задача не завершена, уничтожьте поток.
Я знаю, что я могу увеличить PoolSize с помощью:
Executors.newScheduledThreadPool();
Но что произойдет, если в конечном итоге все потоки блокируются
Я просмотрел форум и увидел решения, упомянутые с помощью FutureTasks. Может ли это быть применено к задаче с аннотацией @Scheduled? Поскольку приложение имеет весеннюю загрузку, для конфигурации тайм-аута нет конфигурации xml.
Я планирования их в определенное время CRON с использованием @scheduled. С помощью метода, предоставленного вами, можно ли удержать тайм-аут? Я хочу, чтобы поток был убит или прерван, если он не завершит выполнение через некоторое время. Чтобы другие потоки не прерывались. – javaEd
Да, вы можете сохранить экземпляр ScheduledFuture и проверить с помощью isDone() и отменить() его. Вы можете проверить использование: http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ScheduledFuture.html –