MQ延迟队列插件

MQ中的延迟队列应用场景:订单支付模块,用户下单后15分钟未支付自动取消,就可以使用延迟队列。

 

1、代码方式生成交换机和队列

复制代码
@Configuration
public class DircetQueueConfig {
    @Bean
    public DirectExchange directExchange(){
        return ExchangeBuilder
                .directExchange("delay.direct") // 指定交换机类型和名称
                .delayed() //设置 delay 属性为true
                .durable(true)//持久化
                .build();
    }

    @Bean
    public Queue delayedQueue(){
        return new Queue("delay.queue");
    }

    @Bean
    public Binding delayedBinding(){
        return BindingBuilder.bind(delayedQueue()).to(directExchange()).with("delay");
    }
}
复制代码

 

 

 

 

2、注解方式生成

 

 

发送消息:

 

 

代码:

复制代码
  @Test
    public  void  testDelayedMsg(){
        //创建信息
        Message message = MessageBuilder.withBody("hello,javascirpte!".getBytes(StandardCharsets.UTF_8))
                .setHeader("x-delay",10000) //设置延迟时间为10秒
                .build();
        // 消息ID,需要封装到CorrelationData中
        CorrelationData correlationData = new CorrelationData(UUID.randomUUID().toString());
        // 发送消息
        rabbitTemplate.convertAndSend("delay.direct","delay",message,correlationData);
        log.debug("发送信息成功");
    }
复制代码

 

posted @   追星月?问酒缘。  阅读(127)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示