Sto provando a leggere N elementi da un RingBuffer utilizzando readManyAsync ma restituisce sempre un risultato risultato vuoto. Se uso readOne ottengo dati.Hazelcast Ringbuffer readManyAsync restituisce risultati vuoti
Sto usando readManyAsync come specificato dalla documentazione. C'è un altro modo per farlo?
Ambiente:
- Java 8
- Hazelcast 3.5.3
Esempio:
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));
}
uscita:
*** readManyAsync *** readCount: 0
*** readOne ***
0 - a
1 - b
2 - c
Beh, in realtà è un bug: https: //groups.google.com/forum/#! Topic/hazelcast/FGnLWDGrzb8 – Brice
Grazie per aver segnalato il problema. Sono state effettuate le PR per master e manutenzione: https://github.com/hazelcast/hazelcast/pull/6788 – pveentjer