延时队列
· 阅读需 15 分钟
延时队列(Delayed Queue)是一种支持消息延迟消费的特殊队列,核 心特性是:消息入队后不会立即被消费,而是等待指定的延迟时间后,才被推送到消费端处理。它区别于普通队列的“先进先出”,核心是按“延迟时间”排序并触发消费,是分布式系统中处理延时任务的核心组件。
一、延时队列核心概念
1. 核心定义
- 延迟时间:消息的“触发时间”(如“5分钟后执行”或“2024-05-01 10:00:00执行”);
- 触发条件:当系统时间达到消息的延迟时间阈值时,消息才会被消费;
- 有序性:延时队列内部通常按消息的触发时间排序,保证先到期的消息先被消费。
2. 与普通队列的区别
| 特性 | 普通队列 | 延时队列 |
|---|---|---|
| 消费时机 | 入队后立即可消费 | 延迟时间到期后才可消费 |
| 排序规则 | 按入队顺序(FIFO) | 按触发时间排序 |
| 核心场景 | 即时任务处理 | 延时/定时任务处理 |
