我想实现配置了超时的AMQP发布者确认的示例。像这样的东西:
private final CountDownLatch confirmLatch = new CountDownLatch(1);
TransactionResponseFactory processingPeply = (TransactionResponseFactory) processingTransactionTemplate.convertSendAndReceive(
ContextServer.EXCHANGE_PROCESSING, ContextServer.ROUTING_KEY_PROCESSING_, tf);
if (processingTransactionTemplate.confirmLatch.await(10, TimeUnit.SECONDS)) {
System.out.println("Confirm received");
}
else {
System.out.println("Confirm NOT received");
// add some logic here to resend
}
实施它的正确方法是什么?
RabbitTemplate.ConfirmCallback
添加到模板中。CorrelationData
对象(子类)中发送锁存器 - 发送操作中的额外参数。但请记住,每次发送后等待确认都会大大减慢发布速度。
它真的打算发布一堆消息,然后等待他们的确认。
当然,设计取决于您的要求。