【发布时间】:2023-03-30 22:46:01
【问题描述】:
我有一个小型独立应用程序,它配置调度程序以正常终止。配置如下:
@Bean
public TaskScheduler taskScheduler() {
ThreadPoolTaskScheduler scheduler = new ThreadPoolTaskScheduler();
scheduler.setWaitForTasksToCompleteOnShutdown(true);
scheduler.setAwaitTerminationSeconds(60);
return scheduler;
}
我可以让它优雅地终止调度程序,但前提是我没有任何 @Scheduled(cron = ) 任务。一旦我拥有其中之一,无论调度程序会被卡住直到超时。我已经尝试使用执行器对其进行配置,并手动执行关机/等待,效果完全一样。
这些 cron 作业甚至没有运行。例如,它们被设置为在夜间的固定时间运行。
春季版:4.2.8.RELEASE
当超时到达结束时会发生这种情况:
2017.07.28 01:44:56 [Thread-3] WARN Timed out while waiting for executor 'taskScheduler' to terminate
有什么想法吗?
【问题讨论】:
-
没错。不错的收获。也许您可以将其提升为答案,以便我接受。谢谢。
标签: java spring scheduler quartz