|
@@ -46,7 +46,6 @@ public class RabbitMqConfig {
|
|
|
);
|
|
|
}
|
|
|
|
|
|
-
|
|
|
// 交换机配置
|
|
|
/* email交换机 */
|
|
|
@Bean
|
|
@@ -65,16 +64,15 @@ public class RabbitMqConfig {
|
|
|
return new DirectExchange(RabbitMqConstant.DELAY_EXCHANGE,true,false);
|
|
|
}
|
|
|
|
|
|
+ // 订单关闭
|
|
|
@Bean
|
|
|
public Queue paymentOrderDelayQueue(){
|
|
|
return new Queue(RabbitMqConstant.PAYMENT_ORDER_DELAY_QUEUE, true, false, false);
|
|
|
}
|
|
|
-
|
|
|
@Bean
|
|
|
public Binding paymentOrderDelayBinding() {
|
|
|
return BindingBuilder.bind(paymentOrderDelayQueue()).to(delayExchange()).with(RabbitMqConstant.PAYMENT_ORDER_ROUTING_KEY);
|
|
|
}
|
|
|
-
|
|
|
@Bean
|
|
|
public Queue paymentOrderQueue() {
|
|
|
Map<String, Object> params = new HashMap<>();
|
|
@@ -84,7 +82,6 @@ public class RabbitMqConfig {
|
|
|
params.put("x-dead-letter-routing-key", RabbitMqConstant.PAYMENT_ORDER_ROUTING_KEY);
|
|
|
return new Queue(RabbitMqConstant.PAYMENT_ORDER_QUEUE,true,false,false,params);
|
|
|
}
|
|
|
-
|
|
|
@Bean
|
|
|
public Binding paymentOrderBinding() {
|
|
|
// 如果要让延迟队列之间有关联,这里的 routingKey 和 绑定的交换机很关键
|
|
@@ -93,6 +90,31 @@ public class RabbitMqConfig {
|
|
|
.with(RabbitMqConstant.PAYMENT_ORDER_ROUTING_KEY);
|
|
|
}
|
|
|
|
|
|
+ // 订阅过期死信队列
|
|
|
+ @Bean
|
|
|
+ public Queue paymentSubscriptionExpireDelayQueue(){
|
|
|
+ return new Queue(RabbitMqConstant.PAYMENT_SUBSCRIPTION_EXPIRED_DELAY_QUEUE, true, false, false);
|
|
|
+ }
|
|
|
+ @Bean
|
|
|
+ public Binding paymentSubscriptionExpireDelayBinding() {
|
|
|
+ return BindingBuilder.bind(paymentSubscriptionExpireDelayQueue()).to(delayExchange()).with(RabbitMqConstant.PAYMENT_SUBSCRIPTION_EXPIRED_ROUTING_KEY);
|
|
|
+ }
|
|
|
+ @Bean
|
|
|
+ public Queue paymentSubscriptionExpireQueue() {
|
|
|
+ Map<String, Object> params = new HashMap<>();
|
|
|
+ // x-dead-letter-exchange 声明了队列里的死信转发到的DLX名称,
|
|
|
+ params.put("x-dead-letter-exchange", RabbitMqConstant.DELAY_EXCHANGE);
|
|
|
+ // x-dead-letter-routing-key 声明了这些死信在转发时携带的 routing-key 名称。
|
|
|
+ params.put("x-dead-letter-routing-key", RabbitMqConstant.PAYMENT_SUBSCRIPTION_EXPIRED_DELAY_QUEUE);
|
|
|
+ return new Queue(RabbitMqConstant.PAYMENT_SUBSCRIPTION_EXPIRED_QUEUE,true,false,false,params);
|
|
|
+ }
|
|
|
+ @Bean
|
|
|
+ public Binding paymentSubscriptionExpireBinding() {
|
|
|
+ // 如果要让延迟队列之间有关联,这里的 routingKey 和 绑定的交换机很关键
|
|
|
+ return BindingBuilder.bind(paymentSubscriptionExpireQueue())
|
|
|
+ .to(paymentExchange())
|
|
|
+ .with(RabbitMqConstant.PAYMENT_SUBSCRIPTION_EXPIRED_ROUTING_KEY);
|
|
|
+ }
|
|
|
|
|
|
// 普通队列配置
|
|
|
/* 发送email队列 */
|