【发布时间】:2019-09-05 22:29:46
【问题描述】:
我有一个通过 Spring Cloud Stream 连接到 RabbitMQ 的应用程序,它运行良好。
对于集成测试用例,我正在尝试使用示例 - https://github.com/piomin/sample-message-driven-microservices/blob/master/account-service/src/test/java/pl/piomin/services/account/OrderReceiverTest.java
但是,在我的情况下,我的应用程序会在某个时间间隔内发回 3 条消息。因此,如果我输入以下行,它会获取消息,但如果获取消息有延迟。
int i = 1;
while (i > 0) {
Message<String> received = (Message<String>) collector.forChannel(channels.statusMessage()).poll();
if (received != null) {
LOGGER.info("Order response received: {}", received.getPayload());
}
}
- 那么,除了我的自定义轮询之外,有什么方法可以让我等待并轮询我的消息,并在收到这些消息时停止?
- 我想根据不同通道的响应路由键获取选择消息。可能吗 ? --> 例子:如果routingKey是“InProcess”,应该去Inprocess Method。
【问题讨论】:
标签: spring-boot integration-testing spring-cloud-stream