Spring @Scheduled,如何一次(不同时运行)运行一次

时间:2018-07-02 11:32:29

标签: spring spring-scheduled

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

有时此过程需要超过15秒的时间。

如果@Scheduled已经在运行,有什么方法可以避免它的调用?

我的解决方法当前是该类中的一个标志字段,用于指示进程是否正在运行,如果已将其标记,则代码将在执行主代码之前退出。

1 个答案:

答案 0 :(得分:3)

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

请参阅: How to prevent overlapping schedules in Spring?

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