Spring Boot 如何在Springboot的计划任务中设置超时

mrwjdhj3  于 2022-11-05  发布在  Spring
关注(0)|答案(1)|浏览(218)

我正在使用Springboot开发一个Web服务器。
在我的项目中,我需要定期执行一些任务,因此我使用了“计划:

import org.springframework.scheduling.annotation.Scheduled;

public class TextFilter {    
    @Scheduled(fixedDelay = 5 * 60 * 1000) // 5min
    public void updateSensitiveWords() {
        // do something
    }
}

如您所见,函数updateSensitiveWords将在最后一次执行完成后5分钟执行。
但是,我需要担心的情况是,由于某种原因,执行可能花费太多时间,例如20分钟。因此,我认为需要为函数设置一个超时,如下所示:

public class TextFilter {    
    @Scheduled(fixedDelay = 5 * 60 * 1000, timeout = 2 * 60 * 1000)
    public void updateSensitiveWords() {
        // do something
    }
}

这意味着,如果函数的执行时间超过2分钟,则中止/停止执行并等待下一次。
正确的方法是什么?Springboot是否提供了某种机制来做到这一点?

wbgh16ku

wbgh16ku1#

我在此处找到了另一个可能与您的问题相关的问题https://stackoverflow.com/a/31740351/10297961
答案建议您应该尝试实现一些ThreadPoolTaskScheduler配置来控制您的调度程序

相关问题