Open yu961549745 opened 5 years ago
MQPullConsumer
pull
BufferedMq
peek
poll
bufferSize
java.util.PriorityQueue
MessageExt.getBornTimestamp
public MessageExt receive() { if (priorityQueue.isEmpty()) { return null; } BufferedMq mq = priorityQueue.poll(); MessageExt msg = mq.poll(); if (mq.peek() != null) { priorityQueue.add(mq); } return msg; }
全局排序 Pull Consumer 实现
MQPullConsumer
的pull
操作封装在BufferedMq
中, 提供peek
和poll
方法, 自动根据指定的bufferSize
刷新消息.java.util.PriorityQueue
实现多路归并, 按照MessageExt.getBornTimestamp
进行排序.