提交 48c53682 authored 作者: huyufan's avatar huyufan

订单增加延迟消息发送更改

上级 f33baf64
...@@ -42,84 +42,31 @@ public class RabbitBeanConfig { ...@@ -42,84 +42,31 @@ public class RabbitBeanConfig {
@Bean @Bean
public Queue orderOnQueue() { public Queue orderOnQueue() {
Map<String, Object> params = new HashMap<>(6); return new Queue(RabbitKeyConstants.ORDER_ON_QUEUE, true, false, false);
params.put("x-dead-letter-exchange", RabbitKeyConstants.ORDER_ON_DEAD_EXCHANGE);
params.put("x-dead-letter-routing-key", RabbitKeyConstants.ORDER_ON_DEAD_ROUTE_KEY);
return new Queue(RabbitKeyConstants.ORDER_ON_QUEUE, true, false, false, params);
} }
/** /**
* 订单挂单中交换机 * 订单挂单中交换机
**/ **/
@Bean @Bean
public DirectExchange orderOnExchange() { public CustomExchange orderOnExchange() {
return new DirectExchange(RabbitKeyConstants.ORDER_ON_EXCHANGE); Map<String, Object> arguments = new HashMap<>();
//设置路由模式 direct模式
arguments.put("x-delayed-type", "direct");
return new CustomExchange(RabbitKeyConstants.ORDER_ON_EXCHANGE,"x-delayed-message", true, false, arguments);
} }
/** /**
* 订单挂单中绑定 * 订单挂单中绑定
*/ */
@Bean @Bean
public Binding orderOnExchangeBind() { public Binding orderOnExchangeBind(@Qualifier("orderOnQueue")Queue queue,@Qualifier("orderOnExchange")CustomExchange customExchange) {
return BindingBuilder.bind(orderOnQueue()).to(orderOnExchange()).with(RabbitKeyConstants.ORDER_ON_ROUTE_KEY); return BindingBuilder.bind(queue).to(customExchange).with(RabbitKeyConstants.ORDER_ON_ROUTE_KEY).noargs();
} }
/**
* 死信队列:死信队列处理延迟消息
* @return
*/
@Bean
public Queue orderOnDeadQueue() {
return new Queue(RabbitKeyConstants.ORDER_ON_DEAD_QUEUE, true, false, false);
}
/** /**
* 订单挂单中交换机:死信队列处理延迟消息 * 处理延迟消息货单挂单
**/
@Bean
public DirectExchange orderOnDeadExchange() {
return new DirectExchange(RabbitKeyConstants.ORDER_ON_DEAD_EXCHANGE);
}
/**
* 订单挂单中绑定:死信队列处理延迟消息
*/
@Bean
public Binding orderDeadExchangeBind() {
return BindingBuilder.bind(orderOnDeadQueue()).to(orderOnDeadExchange()).with(RabbitKeyConstants.ORDER_ON_DEAD_ROUTE_KEY);
}
/**
// * 货单挂单队列
// * @return
// */
// @Bean
// public Queue orderGoodsOnQueue() {
// Map<String, Object> params = new HashMap<>(6);
// params.put("x-dead-letter-exchange", RabbitKeyConstants.ORDER_GOODS_ON_DEAD_EXCHANGE);
// params.put("x-dead-letter-routing-key", RabbitKeyConstants.ORDER_GOODS_ON_DEAD_ROUTE_KEY);
// return new Queue(RabbitKeyConstants.ORDER_GOODS_ON_QUEUE, true, false, false, params);
// }
//
// /**
// * 货单挂单中交换机
// **/
// @Bean
// public DirectExchange orderGoodsOnExchange() {
// return new DirectExchange(RabbitKeyConstants.ORDER_GOODS_ON_EXCHANGE);
// }
//
// /**
// * 货单挂单中绑定
// */
// @Bean
// public Binding orderGoodsOnExchangeBind() {
// return BindingBuilder.bind(orderGoodsOnQueue()).to(orderGoodsOnExchange()).with(RabbitKeyConstants.ORDER_GOODS_ON_ROUTE_KEY);
// }
/**
* 死信队列:死信队列处理延迟消息货单挂单
* @return * @return
*/ */
@Bean @Bean
...@@ -128,7 +75,7 @@ public class RabbitBeanConfig { ...@@ -128,7 +75,7 @@ public class RabbitBeanConfig {
} }
/** /**
* 货单挂单中交换机:死信队列处理延迟消息 * 货单挂单中交换机:处理延迟消息
**/ **/
@Bean @Bean
public CustomExchange orderGoodsOnDeadExchange() { public CustomExchange orderGoodsOnDeadExchange() {
...@@ -138,13 +85,6 @@ public class RabbitBeanConfig { ...@@ -138,13 +85,6 @@ public class RabbitBeanConfig {
return new CustomExchange(RabbitKeyConstants.ORDER_GOODS_ON_DEAD_EXCHANGE,"x-delayed-message", true, false, arguments); return new CustomExchange(RabbitKeyConstants.ORDER_GOODS_ON_DEAD_EXCHANGE,"x-delayed-message", true, false, arguments);
} }
/**
* 货单挂单中绑定:死信队列处理延迟消息
*/
// @Bean
// public Binding orderGoodsDeadExchangeBind() {
// return BindingBuilder.bind(orderGoodsOnDeadQueue()).to(orderGoodsOnDeadExchange()).with(RabbitKeyConstants.ORDER_GOODS_ON_DEAD_ROUTE_KEY);
// }
//绑定交换机,队列和routingKey //绑定交换机,队列和routingKey
@Bean @Bean
public Binding delayedQueueBindingDelayedExchange(@Qualifier("orderGoodsOnDeadQueue")Queue queue,@Qualifier("orderGoodsOnDeadExchange")CustomExchange customExchange) { public Binding delayedQueueBindingDelayedExchange(@Qualifier("orderGoodsOnDeadQueue")Queue queue,@Qualifier("orderGoodsOnDeadExchange")CustomExchange customExchange) {
......
...@@ -87,7 +87,8 @@ public abstract class GoodsOrderStrategy { ...@@ -87,7 +87,8 @@ public abstract class GoodsOrderStrategy {
log.info("执行订单状态更改,epochMilli时间不为0,时间为:{}", epochMilli); log.info("执行订单状态更改,epochMilli时间不为0,时间为:{}", epochMilli);
rabbitTemplate.send(RabbitKeyConstants.ORDER_POSTED_EXCHANGE, RabbitKeyConstants.ORDER_POSTED_ROUTE_KEY, MessageBuilder.withBody(orderNo.getBytes()).build()); rabbitTemplate.send(RabbitKeyConstants.ORDER_POSTED_EXCHANGE, RabbitKeyConstants.ORDER_POSTED_ROUTE_KEY, MessageBuilder.withBody(orderNo.getBytes()).build());
message.getMessageProperties().setExpiration(String.valueOf(epochMilli)); message.getMessageProperties().setHeader("x-delay", epochMilli);
rabbitTemplate.send( rabbitTemplate.send(
RabbitKeyConstants.ORDER_ON_EXCHANGE, RabbitKeyConstants.ORDER_ON_ROUTE_KEY, message RabbitKeyConstants.ORDER_ON_EXCHANGE, RabbitKeyConstants.ORDER_ON_ROUTE_KEY, message
); );
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论