Я пытаюсь прочитать N элементов из RingBuffer с помощью readManyAsync, но он всегда возвращает пустой набор результатов. Если я использую readOne, я получаю данные.Hazelcast Ringbuffer readManyAsync возвращает пустые результаты
Я использую readManyAsync, как указано в документации. Есть ли другой способ сделать это?
Enviroment:
- Java-8
- Hazelcast 3.5.3
Пример:
Ringbuffer<String> buffer = this.hazelcastInstance.getRingbuffer("testBuffer");
buffer.add("a");
buffer.add("b");
buffer.add("c");
Long sequence = buffer.headSequence();
ICompletableFuture<ReadResultSet<String>> resultSetFuture = buffer.readManyAsync(sequence, 0, 3, null);
ReadResultSet<String> resultSet = resultSetFuture.get();
System.out.println("*** readManyAsync *** readCount: " + resultSet.readCount());
int count = 0;
for (String s : resultSet) {
System.out.println(count + " - " + s);
count++;
}
System.out.println("*** readOne ***");
for (int i = 0; i < 3; i++) {
System.out.println(i + " - " + buffer.readOne(i));
}
Выход:
*** readManyAsync *** readCount: 0
*** readOne ***
0 - a
1 - b
2 - c
Ну, это на самом деле ошибка: https: //groups.google.com/forum/#! Topic/hazelcast/FGnLWDGrzb8 – Brice
Спасибо, что указали эту проблему. PR для основного и технического обслуживания были сделаны: https://github.com/hazelcast/hazelcast/pull/6788 – pveentjer