mirror of
https://github.com/apache/rocketmq.git
synced 2026-09-19 02:23:24 +08:00
Co-authored-by: ayue <ericyu0421@163.com>
This commit is contained in:
+9
-7
@@ -394,8 +394,7 @@ public class MessageStoreFetcherImpl implements MessageStoreFetcher {
|
||||
messageStore.getIndexService().queryAsync(topic, key, maxCount, begin, end);
|
||||
|
||||
return future.thenCompose(indexItemList -> {
|
||||
QueryMessageResult result = new QueryMessageResult();
|
||||
List<CompletableFuture<Void>> futureList = new ArrayList<>(maxCount);
|
||||
List<CompletableFuture<SelectMappedBufferResult>> futureList = new ArrayList<>(maxCount);
|
||||
for (IndexItem indexItem : indexItemList) {
|
||||
if (topicId != indexItem.getTopicId()) {
|
||||
continue;
|
||||
@@ -405,17 +404,20 @@ public class MessageStoreFetcherImpl implements MessageStoreFetcher {
|
||||
if (flatFile == null) {
|
||||
continue;
|
||||
}
|
||||
CompletableFuture<Void> getMessageFuture = flatFile
|
||||
CompletableFuture<SelectMappedBufferResult> getMessageFuture = flatFile
|
||||
.getCommitLogAsync(indexItem.getOffset(), indexItem.getSize())
|
||||
.thenAccept(messageBuffer -> result.addMessage(
|
||||
new SelectMappedBufferResult(
|
||||
indexItem.getOffset(), messageBuffer, indexItem.getSize(), null)));
|
||||
.thenApply(messageBuffer -> new SelectMappedBufferResult(
|
||||
indexItem.getOffset(), messageBuffer, indexItem.getSize(), null));
|
||||
futureList.add(getMessageFuture);
|
||||
if (futureList.size() >= maxCount) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
return CompletableFuture.allOf(futureList.toArray(new CompletableFuture[0])).thenApply(v -> result);
|
||||
return CompletableFuture.allOf(futureList.toArray(new CompletableFuture[0])).thenApply(v -> {
|
||||
QueryMessageResult result = new QueryMessageResult();
|
||||
futureList.forEach(f -> f.thenAccept(result::addMessage));
|
||||
return result;
|
||||
});
|
||||
}).whenComplete((result, throwable) -> {
|
||||
if (result != null) {
|
||||
log.info("MessageFetcher#queryMessageAsync, " +
|
||||
|
||||
Reference in New Issue
Block a user