目录
RabbitMQ实现延时队列
Maven依赖
代码实现
1.插件方式
RabbitMQ实现延时队列
RabbitMQ实现延时队列有两种方式:1.死信队列 2.下载插件。
Maven依赖
Maven依赖:
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-amqp -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
配置:
spring.rabbitmq.host = 127.0.0.1
spring.rabbitmq.port = 5672
spring.rabbitmq.username = guest
spring.rabbitmq.password = guest
spring.rabbitmq.virtualHost = sandbox
# 手动提交
spring.rabbitmq.listener.simple.acknowledge-mode=manual
spring.rabbitmq.listener.simple.concurrency=3
spring.rabbitmq.listener.simple.max-concurrency=10
spring.rabbitmq.listener.simple.prefetch=1
spring.rabbitmq.cache.channel.size=50
代码实现
1.插件方式
默认已经安装好RabbitMQ的延时插件,接下来我们直接步入主题。
(1)配置类:配置交换机、延时队列、绑定交换机&队列。
package com.atta.msgdactuator.config;
import org.springframework.amqp.core.Binding;
import org.springframework.amqp.core.BindingBuilder;
import org.springframework.amqp.core.CustomExchange;
import org.springframework.amqp.core.Queue;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.util.HashMap;
import java.util.Map;
/**
* author: cms
* dat