✅83、基于订单定时退款场景,来分析RocketMQ的延迟消息的代码实现
2025/10/24大约 1 分钟
基于订单定时退款场景,来分析RocketMQ的延迟消息的代码实现
上一篇文章我们分析了延迟消息的使用场景,这篇文章我们分析一下RocketMQ中对延迟消息的代码实现
其实RocketMQ对延迟消息的支持是很好的,实现起来也非常的容易,我们先看发送延迟消息的代码示例。

大家看上面的代码,其实发送延迟消息的核心,就是设置消息的delayTimeLevel,也就是延迟级别
RocketMQ默认支持一些延迟级别如下:1s 5s 10s 30s 1m 2m 3m 4m 5m 6m 7m 8m 9m 10m 20m 30m 1h 2h
所以上面代码中设置延迟级别为3,意思就是延迟10s,你发送出去的消息,会过10s被消费者获取到。那么如果是订单延迟扫描场景,可以设置延迟级别为16,也就是对应上面的30分钟。
接着我们看看一个消费者的代码示例,比如订单扫描服务,正常他会对每个订单创建的消息,在30分钟以后才获取到,然后去查询订单状态,判断如果是未支付的订单,就自动关闭这个订单

把延迟消息的使用搞明白了之后,想必大家以后在自己的系统中就可以使用延迟消息去支持一些特殊的业务场景了。