SpringBoot+RabbitMq延迟插件实现延时队列
一.安装RabbitMq
链接地址:https://blog.csdn.net/liang1gsdsdfd/article/details/109242939
二.话不多说直接上代码
1.导入maven依赖
<!-- rabbitMq -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
2.在application.yml配置文件中引入RabbitMq配置信息
spring:
rabbitmq:
host: 127.0.0.1(你的RabbitMq配置地址)
port: 5672(端口)
username: super(用户名)
password: Jmy2019.(密码)
virtual-host: ecosphere(主机)
3.rabbitMq配置类
package com.nuvole.merchant.conf.mq;
import org.springframework.amqp.core.*;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.util.HashMap;
import java.util.Map;
@Configuration
public class AmqpConfig {
public static final String TEST_EXCHANGE_KEY = "exchange.pay";
public static final String TEST_QUEUE_KEY = "test.pay";
public static final String TEST_ROUTK = "test.pay";
@Bean
public Queue testQueue() {
return new Queue(TEST_QUEUE_KEY, true);
}
@Bean
public CustomExchange testExchange() {
Map<String, Object> args = new HashMap<>();
args.put("x-delayed-type", "direct");
return new CustomExchange(TEST_EXCHANGE_KEY, "x-delayed-message", true, false, args);
}
@Bean
public Binding testBinding(CustomExchange testExchange, Queue testQueue) {
Binding binding = BindingBuilder.bind(testQueue).to(testExchange).with(TEST_ROUTK).noargs();
return binding;
}
}
4.消息发送确认
package com.nuvole.merchant.conf.mq;
import org.springframework.amqp