2017-07-28 69 views
3

我有一个小型独立应用程序,它将配置程序配置为正常终止。具有以下配置:使用cron计划时弹簧计划正常关机不起作用

@Bean 
public TaskScheduler taskScheduler() { 
    ThreadPoolTaskScheduler scheduler = new ThreadPoolTaskScheduler(); 
    scheduler.setWaitForTasksToCompleteOnShutdown(true); 
    scheduler.setAwaitTerminationSeconds(60); 
    return scheduler; 
} 

我可以得到它正常终止调度,但只有当我没有任何@Scheduled(的cron =)任务。一旦我有其中一个,不管调度器在超时之前会卡住什么。我已经尝试过使用执行器配置它,并手动执行shutdown/await,效果完全相同。

这些cron作业甚至没有运行。例如,他们将在夜间的固定时间运行。

Spring版本:4.2.8.RELEASE

当超时到达终点会发生这种情况:

2017.07.28 01:44:56 [Thread-3] WARN Timed out while waiting for executor 'taskScheduler' to terminate 

有什么想法?

+0

这是正确的。很好的接收。也许你可以将它提升为答案,以便我可以接受它。谢谢。 – rpvilao

回答