我正在查看RemoteCache,RemoteCacheManager,Lifecycle Start和Lifecycle Stop的文档。
我很难理解start()和stop()方法到底做了什么。
我问的原因是因为我试图远程停止并启动特定缓存。我想这样做,以便我可以观察我的应用程序在停止/启动状态期间发挥的行为。即我写了一个远程停止缓存的测试。发生这种情况时,我会进行一次模拟调用,看看我的软件在缓存已关闭的情况下的行为。
我尝试在特定实例上的RemoteCache和RemoteCacheManager中调用stop()和start(),但infinispan依赖项似乎没有异常。因此,它让我相信我误解了这两种方法的目的。
我的软件使用如下代码调用远程缓存:
final RemoteCache<String, String> cache = remoteCacheManager.getCache(CACHE_NAME);
if (cache != null) {
if (cache.containsKey(key)) {
// Do something
} else {
// Do something else
}
} else {
throw new Exception("cache null");
}
我的测试是用这样的代码调用远程缓存:
final Properties props = new Properties();
props.put(ConfigurationProperties.SERVER_LIST, serverList);
props.put(ConfigurationProperties.SO_TIMEOUT, 5000);
props.put(ConfigurationProperties.CONNECT_TIMEOUT, 5000);
rmtCacheMgr = new RemoteCacheManager(props, true);
在测试中,我可能会执行类似这样的操作来停止远程缓存:
rmtCacheMgr.close();
当然,如果我的软件调用了getCache,并且我在测试期间将缓存设置为停止,那么它应该抛出一些异常或者在某种程度上抱怨,不是吗?
答案 0 :(得分:0)
配置新的RemoteCacheManager:
import org.infinispan.client.hotrod.configuration.Configuration;
import org.infinispan.client.hotrod.configuration.ConfigurationBuilder;
Configuration conf = new
ConfigurationBuilder().addServer().host("localhost").port(11222).build();
RemoteCacheManager manager = new RemoteCacheManager(conf);
RemoteCache defaultCache = manager.getCache();
希望这会有所帮助。不要忘记将答案标记为已接受,并在适合您的问题时进行投票!