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

balp4ylt  于 2021-07-09  发布在  Java
关注(0)|答案(1)|浏览(253)

多亏了“simple spring memcached”中的“getting started guide”,我成功地让memcached在我的项目中工作,使用了指南中的“spring 3.1”示例,我使用了“spymemcached”作为提供程序。当memcached服务器启动并运行时,所有这些都可以正常工作。然而,当memcache服务器不可访问(故意关闭以进行测试)时,下划线代码不起作用,应用程序不会执行,只是抛出运行时异常,说明无法连接到memcache服务器并发生超时。

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

然而,在这个场景中,我期望的是在每次无法访问缓存时都执行一个目标方法,而不是完全阻塞执行路径。使用简单的spring memcache可以吗,有人有这方面的经验吗?如何解决这种情况,缓存层的任何异常都不需要干扰执行,只需要调用目标方法作为回退。这就是我想要达到的目标。
我尝试了带有fallbacktonoopcache的spring'compositecachemanager',但看起来简单的spring memcached对此没有效果。
我的所有配置与(Spring3.1)完全相似
https://code.google.com/p/simple-spring-memcached/wiki/getting_started
谢谢你的帮助
例如:my@cacheable的用法是

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

chhqkbe11#

你是对的,它应该像你描述的那样工作,我确信在ssm注解(@readthrough*、@update*、@invalidate*)的情况下,它是这样工作的。我发现对于springcache注解,行为是不同的。我今天就去修。如果您不介意的话,请在github ssm页面上为这个bug创建一个问题。

相关问题