外观
一句话答案
四种方案按推荐度:延迟 MQ(可靠简单)> Redis ZSET > 时间轮(进程内)> DB 轮询(兜底)。
核心要点
| 方案 | 精度 | 可靠性 | 适用 |
|---|---|---|---|
| 延迟MQ | 秒~分 | 高 | 通用(推荐) |
| Redis ZSET | 秒级 | 中 | 量不大 |
| 时间轮 | ms级 | 低 | 进程内 |
| DB轮询 | 分钟 | 高 | 兜底方案 |
追问与易错
追问方向:
- Redis ZSET 延迟任务怎么实现?
- 时间轮优缺点?
- 为什么推荐 MQ?
易错点:
- ❌ 定时扫描 DB 性能好——大表扫描开销大
- ❌ 时间轮适合所有场景——单机内存方案
💡 记忆锚点
四种延迟任务按推荐排序:延迟MQ最推荐(可靠+简单,RocketMQ原生支持),Redis ZSET次之(score存触发时间,轮询ZRANGEBYSCORE取到期任务,量不大好用),时间轮最快但仅限单机内存(Netty HashedWheelTimer),DB轮询最笨但最可靠适合兜底。