【发布时间】:2015-07-31 05:33:47
【问题描述】:
我有一个 Spring Boot 应用程序,它在一天中的特定时间运行许多作业(由 CRON 配置)。 现在我发现应用程序正在运行,但计划的作业没有得到执行。 有没有办法在 Spring 中为带有 @Scheduled 注释的任务添加超时。
这样即使作业被阻塞或等待,也可以被杀死,从而让其他线程顺利执行。线程可以等待指定的时间,如果任务还没有完成,就杀死线程。
我知道我可以使用以下方法增加池大小:
Executors.newScheduledThreadPool();
但是如果最终所有线程都被阻塞会发生什么
我浏览了论坛,看到了提到使用 FutureTasks 的解决方案。这可以应用于带有@Scheduled 注释的任务吗? 由于应用程序是spring-boot,因此也没有xml配置来配置超时。
【问题讨论】:
标签: multithreading spring spring-boot spring-scheduled