memchache不工作时如何处理代码(simple-spring-memcached)

时间:2014-03-11 13:29:36

标签: java memcached spymemcached spring-cache simple-spring-memcached

感谢“入门指南”'在'simple-spring-memcached'中我设法使用'Spring 3.1'示例在我的项目中使用memcached工作,我使用'spymemcached'作为提供者。当memcached服务器启动并运行时,一切正常。 但是,当memcache服务器无法访问时(故意关闭进行测试)下划线代码不起作用,应用程序不会执行简单地抛出运行时异常,说明无法连接到memcache服务器并发生超时。

Caused by: net.spy.memcached.internal.CheckedOperationTimeoutException: Timed out waiting

然而,我期望在这种情况下,目标方法是每次高速缓存无法访问时执行,而不是完全阻止执行路径。使用简单的spring memcache可以实现吗? , 有没有人有这方面的经验?我该如何解决这种情况,缓存层中的任何异常都不需要打扰执行,只需要调用目标方法作为后退。这就是我想要实现的目标。

我尝试使用'fallbackToNoOpCache'弹簧'CompositeCacheManager',但看起来像simple-spring-memcached对此没有影响。

我的所有配置与(春季3.1)

完全相似

https://code.google.com/p/simple-spring-memcached/wiki/Getting_Started

感谢您的帮助

例如:我的@Cacheable的使用是

@Cacheable(value="books", key="#isbn")
public Book findBook(ISBN isbn, boolean checkWarehouse, boolean includeUsed)

1 个答案:

答案 0 :(得分:1)

你是对的它应该像你描述的那样工作,我确信在SSM注释的情况下( @ReadThrough *, @Update *, @Invalidate *)它以这种方式工作。我看到,对于Spring Cache注释,行为是不同的。我今天试着解决它。 如果您不介意,请在github SSM page上为此错误创建问题。