前言
代码可以在 我的仓库里找到https://gitee.com/song_mengyu/Example/tree/master/Project/rabbit-ttl
一、TTL
TTL ,Time to Live,过期时间,rabbitMQ可以对消息和队列设置。
设置类
package com.my;
import org.springframework.amqp.core.Queue;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.env.Environment;
import java.util.HashMap;
import java.util.Map;
@Configuration
public class Config {
@Autowired
Environment env;
@Bean
public Queue ttlQueue(){
Map<String, Object> args = new HashMap<>();
// 第一参数是用来设置ttl的,第二个参数是是ttl的时间,单位毫秒
args.put("x-message-ttl", 10000);
return new Queue(env.getProperty("mq.provider.queue.ttl-queue"), true, false, false, args);
}
@Bean
public Queue queue(){
return new Queue(env.getProperty("mq.provider.queue.queue1"));
}
}
然后是Controller
package com.my;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.core.MessageProperties;
import org.springframework.amqp.rabbit