मैं ReadManyAsync का उपयोग करके एक रिंगबफर से एन आइटम पढ़ने की कोशिश कर रहा हूं लेकिन यह हमेशा खाली परिणाम देता है। अगर मैं readOne का उपयोग करता हूं तो मुझे डेटा मिलता है।Hazelcast Ringbuffer readManyAsync रिक्त परिणाम
मैं प्रलेखन निर्दिष्ट के रूप में readManyAsync का उपयोग कर रहा हूं। ऐसा करने का एक और तरीका है?
पर्यावरण:
- जावा 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/#! विषय/हेज़ेलकास्ट/FGnLWDGrzb8 – Brice
समस्या को इंगित करने के लिए धन्यवाद। मास्टर और रखरखाव के लिए पीआर है: https://github.com/hazelcast/hazelcast/pull/6788 – pveentjer