I am trying to read N items from RingBuffer using readManyAsync, but always returns an empty result set. If I use readOne, I get the data.
I am using readManyAsync as indicated in the documentation. Is there any other way to do this?
Enviroment:
Example:
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)); }
Output:
*** readManyAsync *** readCount: 0 *** readOne *** 0 - a 1 - b 2 - c
source share