HazelcastGrid Computing EntryProcessor对每个成员执行

时间:2016-10-19 14:12:34

标签: hazelcast grid-computing

我使用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成员发送请求。

谢谢,

1 个答案:

答案 0 :(得分:1)

EntryProccessor不会检查密钥是否存在。它类似于存储过程,理论上也可以创建新的键值对。也就是说,您可以将EntryProcessor发送到尚未存在的密钥,并且您将能够存储刚刚生成的新值。

但是,您可以检查条目中是否有值,如果没有,您可以预期密钥尚不存在并跳过处理(如果有帮助): - )