我有一个带注释的方法宽度@Scheduled
,其中cron
为*/15 * * * * ?
(每15秒运行一次)。
有时此过程需要超过15秒的时间。
如果@Scheduled
已经在运行,有什么方法可以避免它的调用?
我的解决方法当前是该类中的一个标志字段,用于指示进程是否正在运行,如果已将其标记,则代码将在执行主代码之前退出。
答案 0 :(得分:3)
我认为已经是这样,如果第一项工作还没有完成,第二项就不会开始。
请参阅: How to prevent overlapping schedules in Spring?
如果它不起作用,您还可以使用AtomicBoolean来检查是否必须启动该过程。