首页 > 解决方案 > @Cacheable 超时/ hystrix spring

问题描述

我正在使用 @Cachebale 来缓存请求响应。

@Cacheable
@HystrixCommand(fallbackMethod = "myFallBackResponse" )
public Response call(Request request) {}

正如您在上面的代码中看到的,我使用 netflix-hystix 来设置此方法调用的超时时间。

但是当这个调用进入 cache 时,hystrix 超时将被完全忽略。

有没有办法将超时与 @Cacheable 相关联,有或没有 hystrix?

标签: javaspringspring-dataspring-annotationshystrix

解决方案


我仍在研究这个,但是...... AFAIK 每个注释都会创建它自己的 Aspect (AOP) 切入点。除非明确定义(我不能 100% 确定您可以使用这些注释),否则它们的顺序无法保证。Hystrix(Javanica)有自己的缓存机制,底层缓存可能是相同的(ehcache)库,但它有自己的命令控制缓存:缓存名称、密钥、驱逐。我认为解决方案是删除可缓存注释并使用 Hystrix (Javanica) 自己的 Hystrix 缓存注释。


推荐阅读