繁体   English   中英

春天的@Scheduled(fixedDelay =…)在午夜停止

Spring's @Scheduled(fixedDelay=…) stops at midnight

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我有一个Spring Boot应用程序,它使用@Scheduled注释具有固定的延迟。 注释在具有不同延迟的不同类别中使用。 但是,每天的午夜所有计划的任务都会停止运行。

有谁知道为什么会这样? 我在网上找不到任何解释。

(我使用的是Spring Boot的版本2.0.2.RELEASE和Spring Core的版本5.0.6.RELEASE。)

提前致谢!

3 个回复

我不确定停止跑步是什么意思。

但是,您需要做的第一项工作是在不同线程上启动计划并将其放入队列中。

如果停止意味着暂停一会儿,那么您创建一个新的日程表,使其他日程表在午夜睡觉。也许新的日程表应该在线程处于睡眠状态时启动,而防止的方法是确保只有一个日程表(我的意思是说同一种时间表)可以同时放在队列中。

如果您只是想在午夜杀死所有其他时间表,则只需要启动午夜时间表并杀死其他时间表即可。

非常抱歉我的英语不好,希望这对您有帮助。

@Scheduled(fixedDelay = 1000)
 void scheduleFixedDelayTask() {
   System.out.println(
  "Fixed delay task - " + System.currentTimeMillis() / 
 1000);
  }

在这种情况下,上一次执行的结束与下一次执行的开始之间的持续时间是固定的。 该任务始终等待直到上一个任务完成。

如果必须在重新运行之前完成先前的执行,则应使用此选项。

因此,请保持延迟以使先前的执行完成。

希望能帮助到你。

感谢所有答复。

事实证明,这与Spring无关。 看来任务已停止,因为日志已停止。 真正发生的是,我们在日志末尾添加脚本的脚本不够聪明,无法处理在午夜滚动的日志文件(脸掌)。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题
 
粤ICP备18138465号  © 2020-2021 STACKOOM.COM