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();

    }
}
相关推荐
篱笆院的狗几秒前
Group by很慢,如何定位?如何优化?
java·数据库
期待のcode22 分钟前
Java的反射
java·开发语言
2201_7578308736 分钟前
AOP入门程序
java·开发语言
雨中飘荡的记忆38 分钟前
MyBatis反射模块详解
java·mybatis
宸津-代码粉碎机39 分钟前
Spring 6.0+Boot 3.0实战避坑全指南:5大类高频问题与解决方案(附代码示例)
java·数据仓库·hive·hadoop·python·技术文档编写
笃行客从不躺平42 分钟前
ThreadLocal 复习一
java·开发语言
程序帝国44 分钟前
SpringBoot整合RediSearch(完整,详细,连接池版本)
java·spring boot·redis·后端·redisearch
安卓程序员_谢伟光1 小时前
如何监听System.exit(0)的调用栈
java·服务器·前端
Pluto_CSND1 小时前
JSONPath解析JSON数据结构
java·数据结构·json
xiaoliuliu123451 小时前
Tomcat Connectors 1.2.32 源码编译安装教程(含 mod_jk 配置步骤)
java·tomcat