【发布时间】:2017-11-19 00:06:00
【问题描述】:
我使用 spring-cloud-stream 作为 RabbitMQ 的包装器。
在我的项目中,我需要使用 MANUAL ACK。所以我添加了适当的配置/代码,当我打开应用程序时它工作。消息被传递,ACK 被消费者发回。
@StreamListener(target = Sink.INPUT)
public void foo(@Payload String message,
@Header(AmqpHeaders.CHANNEL) Channel channel,
@Header(AmqpHeaders.DELIVERY_TAG) Long deliveryTag) throws IOException {
service.bar(message);
channel.basicAck(deliveryTag, false);
}
问题是:
我可以为 AUTO ACK 编写测试,但如何为 MANUAL ACK 编写测试?我只是不知道如何通过@Header(AmqpHeaders.CHANNEL) Channel channel在我的测试中?
【问题讨论】: