目录
一、前沿
在很多业务场景下,需要延迟一段时间后触发,例如下面的一些场景:
(1)、下单成功,30分钟未支付。支付超时,自动取消订单
(2)、会议开始前10分钟,消息提醒
(3)、等待1小时候,短信通知
常见的方法有:
JDK的delayQueue
消息中间件RabbitMQ 的延迟队列
Redis的Zset实现
Redisson的RDelayedQueue
…
二、Redis的Zset实现延迟队列
在实际项目中,某些业务使用延迟队列,但考虑实际情况,很难引用第三方组件RabbitMQ,这会增大系统的复杂和运维难度。这里就介绍Redis的Zset数据类型如何实现延迟队列。
1、具体代码实现
public abstract class AbstractRedisDelayTask {
private String id;