[英]How to reset scheduled (@Scheduled) in spring boot
我有 spring 启动应用程序,我需要每 20 秒刷新一次,所以我创建了这个:
@Scheduled(cron="*/20 * * * * *")
@GetMapping("/refresh")
public void refresh(){
letterServiceI.refreshQueue();
}
它工作得很好,但是当我向数据库添加行并且在它为空之前我想再次将计时器重置为 20 秒,有没有办法做到这一点?
@Override
public Letter add(String name, String content, String pin) {
if (letterRepositoryI.checkIfNotEmpty().isEmpty()){
//if empty -> reset scheduler to 20 again
}
每当向数据库中添加新行时,您都可以调用用@Scheduled(cron="*/20 * * * * *")
注释的方法。
如果你想让你的 Scheduled 表达式更简洁,你也可以使用@Scheduled(fixedDelay = 20, timeUnit = TimeUnit.SECONDS)
。
我承认这可能会导致在手动调用后不久进行预定重置,但我在文档中找不到手动重置此计时器的方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.