@@ -97,7 +97,7 @@ public class RabbitMqConfig { | |||||
* 主题模式队列 | * 主题模式队列 | ||||
* <li>路由格式必须以 . 分隔,比如 user.email 或者 user.aaa.email</li> | * <li>路由格式必须以 . 分隔,比如 user.email 或者 user.aaa.email</li> | ||||
* <li>通配符 * ,代表一个占位符,或者说一个单词,比如路由为 user.*,那么 user.email 可以匹配,但是 user.aaa.email 就匹配不了</li> | * <li>通配符 * ,代表一个占位符,或者说一个单词,比如路由为 user.*,那么 user.email 可以匹配,但是 user.aaa.email 就匹配不了</li> | ||||
* <li>通配符 # ,代表一个或多个占位符,或者说一个或多个单词,比如路由为 user.#,那么 user.email 可以匹配,user.aaa.email 也匹配不了</li> | |||||
* <li>通配符 # ,代表一个或多个占位符,或者说一个或多个单词,比如路由为 user.#,那么 user.email 可以匹配,user.aaa.email 也可以匹配</li> | |||||
*/ | */ | ||||
@Bean | @Bean | ||||
public TopicExchange topicExchange() { | public TopicExchange topicExchange() { | ||||
@@ -164,7 +164,7 @@ public class RabbitMqConfig { | |||||
*/ | */ | ||||
@Bean | @Bean | ||||
public Binding delayBinding(Queue delayQueue, CustomExchange delayExchange) { | public Binding delayBinding(Queue delayQueue, CustomExchange delayExchange) { | ||||
return BindingBuilder.bind(delayQueue).to(delayExchange).with(RabbitConsts.DELAY_MODE_ROUTING_KEY).noargs(); | |||||
return BindingBuilder.bind(delayQueue).to(delayExchange).with(RabbitConsts.DELAY_QUEUE).noargs(); | |||||
} | } | ||||
} | } |
@@ -17,27 +17,27 @@ public interface RabbitConsts { | |||||
/** | /** | ||||
* 直接模式1 | * 直接模式1 | ||||
*/ | */ | ||||
String DIRECT_MODE_QUEUE_ONE = "queue_direct_1"; | |||||
String DIRECT_MODE_QUEUE_ONE = "queue.direct.1"; | |||||
/** | /** | ||||
* 队列2 | * 队列2 | ||||
*/ | */ | ||||
String QUEUE_TWO = "queue_2"; | |||||
String QUEUE_TWO = "queue.2"; | |||||
/** | /** | ||||
* 队列3 | * 队列3 | ||||
*/ | */ | ||||
String QUEUE_THREE = "3_queue"; | |||||
String QUEUE_THREE = "3.queue"; | |||||
/** | /** | ||||
* 分列模式 | * 分列模式 | ||||
*/ | */ | ||||
String FANOUT_MODE_QUEUE = "fanout_mode"; | |||||
String FANOUT_MODE_QUEUE = "fanout.mode"; | |||||
/** | /** | ||||
* 主题模式 | * 主题模式 | ||||
*/ | */ | ||||
String TOPIC_MODE_QUEUE = "topic_mode"; | |||||
String TOPIC_MODE_QUEUE = "topic.mode"; | |||||
/** | /** | ||||
* 路由1 | * 路由1 | ||||
@@ -57,15 +57,10 @@ public interface RabbitConsts { | |||||
/** | /** | ||||
* 延迟队列 | * 延迟队列 | ||||
*/ | */ | ||||
String DELAY_QUEUE = "delay_queue"; | |||||
String DELAY_QUEUE = "delay.queue"; | |||||
/** | /** | ||||
* 延迟队列交换器 | * 延迟队列交换器 | ||||
*/ | */ | ||||
String DELAY_MODE_QUEUE = "delay_mode"; | |||||
/** | |||||
* 延迟队列路由 | |||||
*/ | |||||
String DELAY_MODE_ROUTING_KEY = "delay.#"; | |||||
String DELAY_MODE_QUEUE = "delay.mode"; | |||||
} | } |
@@ -61,11 +61,21 @@ public class SpringBootDemoMqRabbitmqApplicationTests { | |||||
*/ | */ | ||||
@Test | @Test | ||||
public void sendDelay() { | public void sendDelay() { | ||||
rabbitTemplate.convertAndSend(RabbitConsts.DELAY_MODE_QUEUE, "delay.aaa", new MessageStruct("delay message, " + DateUtil | |||||
rabbitTemplate.convertAndSend(RabbitConsts.DELAY_MODE_QUEUE, RabbitConsts.DELAY_QUEUE, new MessageStruct("delay message, delay 5s, " + DateUtil | |||||
.date()), message -> { | .date()), message -> { | ||||
message.getMessageProperties().setHeader("x-delay", 5000); | message.getMessageProperties().setHeader("x-delay", 5000); | ||||
return message; | return message; | ||||
}); | }); | ||||
rabbitTemplate.convertAndSend(RabbitConsts.DELAY_MODE_QUEUE, RabbitConsts.DELAY_QUEUE, new MessageStruct("delay message, delay 2s, " + DateUtil | |||||
.date()), message -> { | |||||
message.getMessageProperties().setHeader("x-delay", 2000); | |||||
return message; | |||||
}); | |||||
rabbitTemplate.convertAndSend(RabbitConsts.DELAY_MODE_QUEUE, RabbitConsts.DELAY_QUEUE, new MessageStruct("delay message, delay 8s, " + DateUtil | |||||
.date()), message -> { | |||||
message.getMessageProperties().setHeader("x-delay", 8000); | |||||
return message; | |||||
}); | |||||
} | } | ||||
} | } | ||||