春季:如何解决在错误的时间开始的@Scheduled作业?

时间:2019-05-22 08:36:30

标签: spring spring-boot scheduled-tasks

我有一个Spring 4.3(和Spring Boot 1.5)@Scheduled(cron = "0 30 1 * * ?")工作(以及其他一些工作),但它始终在9±1h左右开始。系统上的时钟是正确的,我确认它确实计划在正确的时间启动它。

相信问题可能是Spring默认在单个线程上运行作业,并且先前的作业花费的时间太长,因此该作业必须等待。我已尝试按照https://stackoverflow.com/a/47146622/204205中的建议配置一个带有线程池的TaskScheduler,但无济于事(我尝试使用TaskSchedulerThreadPoolTaskScheduler作为返回类型=> bean名称)。

  1. 有人知道我在做什么错吗?
  2. 任何提示如何解决此问题?如何验证/伪造Spring是使用单线程还是多线程,以及按计划开始作业是否有问题-为什么?

我试图阅读Spring代码并在运行时查看其状态,但是它太复杂了,我不知道要看什么。

0 个答案:

没有答案