我正在尝试向rest get方法添加一个计划,当我在没有@Cacheable注释的情况下使用它时,调度程序工作正常。像这样 -
@Scheduled(fixedDelay = 1000*5)
@GetMapping("test")
public void test(){
System.out.println("scheduled task through spring");
}
问题是,当我添加@Cacheable注释时,请求被加载一次,然后调度程序不会重复。
@Scheduled(fixedDelay = 1000*5)
@Cacheable("testData")
@GetMapping("test")
public void test(){
System.out.println("scheduled task through spring");
}
我用google搜索过,但我只能用@Scheduled找到有关@CacheEvict的信息
我不相信把@Cacheable
放在void
方法上是有道理的。即使该方法返回一个值...
我相信@Scheduled
正在解雇,但是@Cacheable
导致返回缓存值,而不是再次执行该方法。我认为这是有道理的。
打开DEBUG日志以验证。
祝好运!