0

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

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

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

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

我所有的配置都与(spring 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)
4

1 回答 1

1

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

于 2014-03-12T06:30:50.660 回答