1

我的 Spring Boot 应用程序中有一个随机问题CaffeineCache。问题在于一个集成测试,它使下一个

  • 查找用户
  • 删除它
  • 再次找到它

find似乎有时缓存在删除后立即第二次调用之前没有按时刷新。

这是find方法的简化签名

@Cacheable(cacheNames = "name", key = "{#config.id, #userId}", unless = "#result == null")
public User find(SomeConfig config, String userId) { 
     // ... 
}

以及删除的简化签名

@Caching(put = {
        @CachePut(cacheNames = "someOtherCache", key = "#userId.technicalId"),
        @CachePut(cacheNames = "name", key = "{#config.id, #userId}")
})
public User delete(SomeConfig config, String userId)  { 
     // ... 
}

我想调用后delete缓存不会立即更新,这就是find第二次不调用方法的原因。它从 10 发生 1 次。

关于修复的任何想法?

4

0 回答 0