我使用@Scheduled注释每两分钟运行一次代码。但是,我们的工作往往会持续较长时间。据我所知,@Scheduled注释将新作业排队,并在第一个作业完成后立即运行它们。我不希望这种情况发生。我希望只有一个作业运行实例,没有排队实例。我怎么能这样做?
@Scheduled(cron = "0 */2 * * * ?")
public void twoMinMethod() {
// code here
}
答案 0 :(得分:1)
如果您不需要在一分钟内完全运行作业,您可能希望切换到允许此类事情的其他非crontab语法。下面的示例将执行该方法,从完成后等待两分钟,然后再次执行。
@Scheduled(fixedDelay=120000)
public void twoMinMethod() { ... }
点击Spring Documentation了解详情。