延迟的Exchange无法直接发布消息

时间:2018-07-27 10:20:43

标签: java spring rabbitmq spring-cloud-stream

我试图创建一个队列,但是我想创建延迟的交换并将消息发送到相应的队列。但是我发现,在创建交换之后,消息不会发送到队列(也不会被使用)。

但是这种奇怪的事情发生了,过了一会儿,比如说30分钟,我用相同的代码再次尝试,消息被发送到队列并被消耗。

这是我的application.properties外观:

spring.cloud.stream.bindings.output.destination=output
spring.cloud.stream.rabbit.bindings.output.producer.routing-key-expression=output.webhook.delay
spring.cloud.stream.bindings.output.producer.required-groups=webhook.delay
spring.cloud.stream.bindings.output.content-type=application/json
spring.cloud.stream.bindings.input.destination=output
spring.cloud.stream.bindings.input.group=webhook.delay
spring.cloud.stream.rabbit.bindings.input.consumer.auto-bind-dlq=true
spring.cloud.stream.rabbit.bindings.input.consumer.dead-letter-routing-key=output.webhook.delay.dlq
spring.cloud.stream.rabbit.bindings.input.consumer.exchange-type=direct
spring.cloud.stream.rabbit.bindings.input.consumer.lazy=true
spring.cloud.stream.rabbit.bindings.input.consumer.delayed-exchange=true
spring.cloud.stream.rabbit.bindings.output.producer.auto-bind-dlq=true
spring.cloud.stream.rabbit.bindings.output.producer.dead-letter-routing-key=output.webhook.delay.dlq
spring.cloud.stream.rabbit.bindings.output.producer.exchange-type=direct
spring.cloud.stream.rabbit.bindings.output.producer.lazy=true
spring.cloud.stream.rabbit.bindings.output.producer.delayed-exchange=true
spring.cloud.stream.rabbit.bindings.output.producer.delay-expression=3000

在RabbitMQ的管理页面中,它显示它创建了交换类型为x-delayed-message的交换,并且我已经安装了延迟交换插件。

我在做什么错?预先感谢。

0 个答案:

没有答案