如何以编程方式使 Quarkus 缓存失效?

How to programmatically invalidate a Quarkus Cache?

我 运行 遇到一个问题,使用 @CacheInvalidate 注释已经不够用了。

一种方法必须擦除两个不同的缓存,其中一个使用给定参数中的两个,另一个使用所有三个。

@CacheInvalidate(cacheName = "cache-with-two-identifiers")
@CacheInvalidate(cacheName = "cache-with-three-identifiers")
public void doSomething(@CacheKey String identifier, @CacheKey String anotherIdentifier, String aThirdIdentifier){

}

@CacheKey注解的参数用于缓存有两个标识符,所以我不能同时注解第三个参数,但需要匹配缓存三个标识符

到目前为止,我看到的唯一解决方案是以编程方式清除方法本身内的第三个参数缓存。你会如何在 Quarkus 中做到这一点?

目前没有适用于 Quarkus 的编程缓存 API。 已经有一个未解决的问题,您可以为其 +1 并提供反馈:https://github.com/quarkusio/quarkus/issues/8140