我对使用 EntryProcessor 或 ExecutorService 的 hazelcast 有疑问。如果密钥不存在于任何成员中,处理器仍会在每个节点中执行,我不明白为什么?
处理器接收到 null 的键条目。
更新一些代码
//example of IMap executeOnKeys
Map<?, ?> map = getCache().executeOnKeys(keys, processor);
//example using executor service
Future<Object[]> result = executor.submitToKeyOwner(myCallable, key);
处理器
public class MyProcessor implements EntryProcessor<MyKey, MyValue>, Serializable {
...code
}
可调用
public class MyCallable implements Callable<Object[]>, Serializable {
...code
}
两个示例使集群的每个节点都接收请求。如果他们没有密钥,就会触发该过程,这就是问题所在。
我正在从属于集群的 Lite 成员发送请求。
谢谢,