rocketmq-baiji / rocketmq

Mirror of Apache RocketMQ
Apache License 2.0
4 stars 20 forks source link

第八组 第三题 实现2 #19

Open Wang-Kangjin opened 6 years ago

Wang-Kangjin commented 6 years ago

What is the purpose of the change

添加从多个队列顺序读取的OrderedConsumer

Brief changelog

将多个队列的头元素链接成为一个小顶堆,每次receive时读取堆顶元素,然后调整堆,实现从多个队列的顺序读取。

按照borntimestamp排序,如果一个队列没有元素可读,该队列的头元素时间戳被设为无穷大。当重新获取到元素时,需要重新调整堆。

所有队列均为空时,抛出异常

Wang-Kangjin commented 6 years ago

第八组 第三题 实现2