RocketMQ实现延时消息

RocketMQ延时消息可以实现订单超时自动取消等类似功能
现在RocketMq并不支持任意时间的延时,需要设置几个固定的延时等级,从1s到2h分别对应着等级1到18

"1s 5s 10s 30s 1m 2m 3m 4m 5m 6m 7m 8m 9m 10m 20m 30m 1h 2h";

代码实现:

java 复制代码
public class Producer {
    public static void main(String[] args) throws Exception{
        //定义一个生产对象
        DefaultMQProducer producer = new DefaultMQProducer("helloGroup");
        //连接nameServer
        producer.setNamesrvAddr("10.0.0.129:9876");
        //启动生产者
        producer.start();
        //设置消息发送的目的地Topic
        String topic = "helloTopic";
        //发送消息
        Message msg = new Message(topic, ("延时消息,发送时间"+new Date()).getBytes(Charset.defaultCharset()));
        //设置消息延时级别3 十秒
        msg.setDelayTimeLevel(3);
            System.out.println("消息发送前");
        producer.sendOneway(msg);
        System.out.println("消息发送完毕.");
        TimeUnit.SECONDS.sleep(5);
        //关闭资源
        producer.shutdown();

    }
}
相关推荐
Albert Edison2 分钟前
【ProtoBuf 语法详解】enum 类型
java·linux·服务器
花间相见10 分钟前
【JAVA基础01】——类和对象
java·开发语言·python
在等晚安么11 分钟前
每日八股文
java·八股
lclcooky11 分钟前
Spring中的IOC详解
java·后端·spring
GIOTTO情12 分钟前
2026小红书投流新规下,基于Infoseek API的媒介投放自动化方案
java·linux·开发语言
xiaoye370815 分钟前
Spring如何处理线程并发问题
java·后端·spring
xiaoye370817 分钟前
Spring中使用自定义@Lock 注解解决线程并发问题
java·spring·wpf
XiaoLeisj17 分钟前
Android 权限管理实战:运行时申请、ActivityResultLauncher 与设置页授权
android·java·权限
FreeFly辉18 分钟前
VScode搭建javaDemo
java·vscode
知我Deja_Vu20 分钟前
【避坑指南】ConcurrentHashMap 并发操作的致命陷阱
java·开发语言