mirror of
https://github.com/luoye663/e5.git
synced 2024-12-26 03:38:53 +00:00
修复rabbitmq ttl 过期时间问题
This commit is contained in:
parent
7aa57ae727
commit
8a5f152315
@ -27,18 +27,7 @@ public class RabbitMQConfig {
|
||||
* */
|
||||
@Bean
|
||||
public Queue fanoutQueue1() {
|
||||
Map<String, Object> arguments = new HashMap<>(2);
|
||||
arguments.put("x-dead-letter-exchange", "delay");
|
||||
arguments.put("x-dead-letter-routing-key", "delay_key");
|
||||
return new Queue("delay_queue1", true, false, false, arguments);
|
||||
}
|
||||
/**
|
||||
*
|
||||
*创建消息处理队列
|
||||
*/
|
||||
@Bean
|
||||
public Queue fanoutQueue2() {
|
||||
return new Queue("delay_queue2", true); // 队列持久
|
||||
return new Queue("delay_queue1", true, false, false);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -51,8 +40,10 @@ public class RabbitMQConfig {
|
||||
* @return
|
||||
*/
|
||||
@Bean
|
||||
public DirectExchange fanoutExchangeDelay() {
|
||||
return new DirectExchange("delay",true, false);
|
||||
public CustomExchange customExchangeDelay() {
|
||||
Map<String, Object> arg = new HashMap<>();
|
||||
arg.put("x-delayed-type", "direct");
|
||||
return new CustomExchange("delay","x-delayed-message",true, false,arg);
|
||||
}
|
||||
|
||||
/*@Bean
|
||||
@ -63,13 +54,8 @@ public class RabbitMQConfig {
|
||||
//绑定 将队列和交换机绑定,
|
||||
@Bean
|
||||
public Binding bindingFanoutQueue1() {
|
||||
return BindingBuilder.bind(fanoutQueue1()).to(fanoutExchangeDelay()).with("delay");
|
||||
return BindingBuilder.bind(fanoutQueue1()).to(customExchangeDelay()).with("delay").noargs();
|
||||
}
|
||||
@Bean
|
||||
public Binding bindingFanoutQueue2() {
|
||||
return BindingBuilder.bind(fanoutQueue2()).to(fanoutExchangeDelay()).with("delay_key");
|
||||
}
|
||||
|
||||
|
||||
|
||||
// 无限循环问题
|
||||
|
@ -35,7 +35,7 @@ public class ListenerImpl {
|
||||
ITask Task;
|
||||
|
||||
@RabbitHandler
|
||||
@RabbitListener(queues = "delay_queue2", containerFactory = "rabbitListenerContainerFactory")
|
||||
@RabbitListener(queues = "delay_queue1", containerFactory = "rabbitListenerContainerFactory")
|
||||
public void listen(Message message, Channel channel) throws IOException {
|
||||
logger.info("消费者1开始处理消息: {},时间戳:{}" ,message,System.currentTimeMillis());
|
||||
System.out.println("消费者1开始处理消息:"+System.currentTimeMillis());
|
||||
|
@ -56,7 +56,7 @@ public class TaskImpl implements ITask {
|
||||
Outlook next = iterator.next();
|
||||
/*根据用户设置生成随机数*/
|
||||
String Expiration = getRandom(next.getCronTimeRandomStart(), next.getCronTimeRandomEnd());
|
||||
System.out.println("生成随机调用时间,github ID" + next.getGithubId() + ",时间:" + Expiration);
|
||||
// System.out.println("生成随机调用时间,github ID" + next.getGithubId() + ",时间:" + Expiration);
|
||||
send(next.getGithubId(), Expiration);
|
||||
}
|
||||
}
|
||||
@ -88,7 +88,9 @@ public class TaskImpl implements ITask {
|
||||
rabbitTemplate.convertAndSend("delay", "delay", msg, message -> {
|
||||
MessageProperties messageProperties = message.getMessageProperties();
|
||||
// 设置这条消息的过期时间
|
||||
messageProperties.setExpiration(Expiration);
|
||||
// messageProperties.setExpiration(Expiration);
|
||||
|
||||
messageProperties.setHeader("x-delay",Expiration);
|
||||
return message;
|
||||
}, correlationData);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user