赞
踩
注: 消费者需等消息全部进入队列后再消费,消息才能进行优先级排队
//声明队列
@Bean
public Queue confirmQueue(){
Map<String,Object> params = new HashMap<>();
//最大优先级为10
params.put("x-max-priority",10);
return new Queue(CONFIRM_QUEUE_NAME,true,false,false,params);
}
@GetMapping("/Message/{message1}/{message2}") public void Message(@PathVariable String message1,@PathVariable String message2){ //消息1 rabbitTemplate.convertAndSend(ConfirmConfig.CONFIRM_EXCHANGE_NAME,ConfirmConfig.CONFIRM_ROUTING_KEY, message1,msg -> { //设置优先级,数字越大优先级越高 msg.getMessageProperties().setPriority(1); return msg; }); //消息2 rabbitTemplate.convertAndSend(ConfirmConfig.CONFIRM_EXCHANGE_NAME,ConfirmConfig.CONFIRM_ROUTING_KEY, message2,msg -> { msg.getMessageProperties().setPriority(2); return msg; }); }
当消息进入队列后,开启消费者,消费者会根据优先级消费消息2再消费消息1。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。