【发布时间】:2015-11-17 18:38:39
【问题描述】:
我需要解决这种情况。我有两个 amqp 消费者设置来获取一条消息。
@Bean
public IntegrationFlow jmsPrimaryFlow() {
return IntegrationFlows.from(
Amqp.inboundGateway(
taskManager().getPrimaryMessageListenerContainer()).errorChannel(errorChannel())
)
.channel(taskChannel())
.get();
}
@Bean
public IntegrationFlow jmsSecondaryFlow() {
return IntegrationFlows.from(
Amqp.inboundGateway(
taskManager().getSecondaryMessageListenerContainer()).errorChannel(errorChannel())
.autoStartup(false)
)
.channel(taskChannel())
.get();
}
taskChannel 是 queuechannel,但一次只允许一条消息消费,因此没有并行处理。 如果另一条消息花费太长时间才能继续,我如何在超时后拒绝一条消息。 所以这条消息将返回到队列以由另一个节点继续?只是我的意思是这两个消费者预取两条消息,但一次只能处理一条消息,所以如果第一个消息需要很长时间才能继续,如何释放第二条预取消息。
【问题讨论】: