首页 > 解决方案 > Spring @Scheduled,如何一次运行一次(非同时)

问题描述

我有一个@Scheduled带注释cron的方法宽度*/15 * * * * ?(每 15 秒运行一次)。

有时,此过程需要超过 15 秒才能运行。

有什么方法可以避免调用@Scheduledif 它已经在运行?

我目前的解决方法是在类中使用一个标志字段来指示进程是否正在运行,如果它被标记,则代码在执行主代码之前退出。

标签: springspring-scheduled

解决方案


我想已经是这样了,如果第一个工作还没有完成,第二个就不会开始。

请参阅: 如何防止 Spring 中的计划重叠?

如果它不起作用,您还可以使用 AtomicBoolean 来检查您是否必须启动该过程。


推荐阅读