O envio de confirmação para o servidor rabbitmq depende do conversor e do ouvinte
Antes de tudo, apresento o contexto do meu caso:
estou usandospring-boot
espring-rabbitmq
. Está funcionando para mim, você deve saber que devo ter implementado o conversor personalizado para mensagens recebidas.
(1) A partir deste conversor pode ser lançada uma exceção, por exemplo, no caso de mensagem imprópria e assim por diante.
2) Após a conversão bem-sucedida (sem exceção), o ouvinte é chamado. Em seguida, no ouvinte também pode ser lançada uma exceção.
Agora, gostaria de forçar duas coisas:
(1 ') Não reencaminhe a mensagem em caso de exclusão no conversor. Simplesmente, envie uma confirmação para a fila e simule que está tudo bem.
(2 ') Qual é a configuração padrão neste caso? Quando internospring-rabbitmq engine
decide enviar confirmação para a fila? Quando decide o comando re-enfileirar? É possível gerenciá-lo depende da situação?
Encontrei nos documentos:
Se as novas tentativas não estiverem ativadas e o ouvinte lançar uma exceção, por padrão, a entrega será repetida indefinidamente. Você pode modificar esse comportamento de duas maneiras; defina a propriedade defaultRequeueRejected como false e tentativas de zero entregas serão tentadas; ou, lance um AmqpRejectAndDontRequeueException para sinalizar que a mensagem deve ser rejeitada. Esse é o mecanismo usado quando as novas tentativas são ativadas e as tentativas máximas de entrega são atingidas.
Por exemplo, em depende da exceção capturada no ouvinte, devo decidir se gostaria de reencaminhar a mensagem, como penso (simplesmente jogando decatch
AmqpRejectAndDontRequeueException
) Não tenho certeza se é um bom caminho e é por isso que estou perguntando sobre sua opinião.