定义
延时队列:顾名思义,是一个用于做消息延时消费的队列。但是它也是一个普通队列,所以它具备普通队列的特性,相比之下,延时的特性就是它最大的特点。
对于普通队列,如果队列里有数据,通过Pop方法可以立刻获取到队列的数据。
而对于延时队列,只有当队列里有数据,且该数据的指定消费时间小于等于当前时间,此刻该数据可被获取。
适用场景
延时队列适合用于设置一个定时器去触发某种事件的场景,如:
- 订单在十分钟之内未支付则自动取消。
- 优惠券过期提醒。
实现
先通过堆排序实现一个优先级队列,然后以时间为优先级,实现延时队列,队列里的元素指定的时间越小,优先级越高,就先出列,也就同时达到延时的效果、
more >>