Наша попытка:
Код: Выделить всё
public class HazelcastBackupEntryProcessorTest {
public static void main(String[] args) throws InterruptedException {
List hazelcastInstances = setupHazelcast(2);
HazelcastInstance hazelcastInstance = hazelcastInstances.get(0);
IMap testMap;
testMap = hazelcastInstance.getMap("testMap");
if (!testMap.containsKey(1)) {
testMap.put(1, "Holmes");
testMap.executeOnEntries(new UpdateNameEntryProcessor("Watson"));
}
}
private static List setupHazelcast(int numberOfInstances) {
List instances = new ArrayList();
IntStream.range(0, numberOfInstances).forEach(i -> {
Config config = new Config();
config.getJetConfig().setEnabled(true);
instances.add(Hazelcast.newHazelcastInstance(config));
});
return instances;
}
private static class UpdateNameEntryProcessor implements EntryProcessor {
private final String name;
public UpdateNameEntryProcessor(String name) {
this.name = name;
}
@Override
public String process(Entry entry) {
System.out.println("Coming Here");
entry.setValue(name);
return null;
}
}
}
Пытался изменить количество HazelcastInstances. когда счетчик экземпляров HZ равен 1, метод процесса вызывается один раз. Для любого числа > 1 метод процесса вызывается дважды.
Подробнее здесь: https://stackoverflow.com/questions/785 ... lled-twice
Мобильная версия