【发布时间】:2018-02-06 20:40:31
【问题描述】:
我正在调用一个带有CacheEvict 注释的函数。这是从一个本身异步执行的函数中调用的。
似乎在函数执行后缓存没有被驱逐。
这里是示例代码
@Async("executor1")
public void function1()
{
// do something
anotherFunction("name", 123, 12);
// do something more
}
@CacheEvict(cacheNames = {"cache1", "cache2", "cache3"}, key = "#testId")
public List<Integer> anotherFunction(String name, int testId, int packageId)
{
// some code here
}
我想要的是应该从所有缓存中清除与testId 对应的条目。
但是,在另一个通话中,我可以看到 cache1 的旧条目。正在从控制器调用function1。这两个功能都存在于服务中。现在,这个配置正确吗?如果是,缓存没有被清除的可能原因是什么?
任何帮助表示赞赏。提前致谢。
【问题讨论】:
标签: caching asynchronous spring-boot ehcache spring-cache