Мне любопытно, если бы не было неожиданной ошибки, будет ли канал работать, пока клиент не подтвердит сообщение (используя channel.basicAck()
)? Есть ли у канала параметр времени ожидания?
Например, будет ли проблематичен этот код, если xxx
очень большой?:
@RabbitListener(queues = DURABLE_QUEUE)
public void listenAddAndDelete(@Payload Message message, Channel channel,@Header(AmqpHeaders.DELIVERY_TAG) long tag) {
log.info("receive user msg: {}", message);
// sleep very long time,then ack,is channel has a timeout?
Thread.sleep(xxx);
try {
channel.basicAck(tag,false);
} catch (IOException e) {
//
}
}
Дополнительно , Когда канал будет закрыт внормальные обстоятельства?