入站终端节点确认模式
默认情况下,入站终端节点使用AUTOacknowledge 模式,这意味着容器会在下游集成流完成时自动确认消息(或者使用QueueChannel或ExecutorChannel).
将 mode 设置为NONE配置使用者,以便根本不使用确认(代理会在消息发送后立即自动确认消息)。
将 mode 设置为MANUAL允许用户代码在处理过程中的其他时间点确认消息。
为了支持这一点,在此模式下,终端节点提供了Channel和deliveryTag在amqp_channel和amqp_deliveryTag标头。
您可以在Channel但是,一般来说,只有basicAck和basicNack(或basicReject) 使用。
为了不干扰容器的作,您不应保留对通道的引用,而只能在当前消息的上下文中使用它。
| 由于 Channel是对 “live” 对象的引用,则无法序列化,如果持久保存消息,则 IT 将丢失。 | 
以下示例显示了如何使用MANUAL确认:
@ServiceActivator(inputChannel = "foo", outputChannel = "bar")
public Object handle(@Payload String payload, @Header(AmqpHeaders.CHANNEL) Channel channel,
        @Header(AmqpHeaders.DELIVERY_TAG) Long deliveryTag) throws Exception {
    // Do some processing
    if (allOK) {
        channel.basicAck(deliveryTag, false);
        // perhaps do some more processing
    }
    else {
        channel.basicNack(deliveryTag, false, true);
    }
    return someResultForDownStreamProcessing;
}