¿Cuánto tiempo puede canalizar mantener viva la espera de una channel.basicAck desde el cliente

zysaaa:

Tengo curiosidad por si no hubiera un error inesperado, lo hará la estancia de canal con vida mientras se espera el cliente para confirmar un mensaje (utilizando channel.basicAck())? ¿Un canal tiene un parámetro de tiempo de espera?

Por ejemplo, este código será ser problemático si xxxes muy grande ?:

@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) {
      //
    }
  }

Además, cuando el canal se puede cerrar en circunstancias normales?

Gary Russell:

Por lo general, no tiempo de espera, siempre y cuando se activan los latidos del corazón (que es el valor predeterminado), pero manteniendo un mensaje en ese estado durante mucho tiempo es un anti-patrón, como sugerí en un comentario a la respuesta que se refiere el comentario encima.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=330751&siteId=1
Recomendado
Clasificación