W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
當在活頁夾中啟用重試后,偵聽器容器線程將在配置的任何退避期間暫停。當需要單個消費者嚴格訂購時,這可能很重要。但是,對于其他用例,它阻止在該線程上處理其他消息。使用活頁夾重試的另一種方法是設(shè)置帶有時間的無效字母,以保留在無效字母隊列(DLQ)中,并在DLQ本身上進行無效字母配置。有關(guān)此處討論的屬性的更多信息,請參見“ RabbitMQ Binder Properties” 。您可以使用以下示例配置來啟用此功能:
autoBindDlq
設(shè)置為true
。活頁夾創(chuàng)建一個DLQ。(可選)您可以在deadLetterQueueName
中指定一個名稱。dlqTtl
設(shè)置為您要在兩次重新交付之間等待的退避時間。dlqDeadLetterExchange
設(shè)置為默認交換。來自DLQ的過期消息被路由到原始隊列,因為默認的deadLetterRoutingKey
是隊列名稱(destination.group
)。設(shè)置為默認交換是通過將屬性設(shè)置為無值來實現(xiàn)的,如下例所示。要強制對消息進行死信處理,請拋出AmqpRejectAndDontRequeueException
或?qū)?code class="literal" i="2638">requeueRejected設(shè)置為true
(默認值)并拋出任何異常。
循環(huán)無休止地繼續(xù)進行,這對于瞬態(tài)問題很好,但是您可能需要在嘗試幾次后放棄。幸運的是,RabbitMQ提供了x-death
標頭,可讓您確定發(fā)生了多少個循環(huán)。
要在放棄后確認消息,請拋出ImmediateAcknowledgeAmqpException
。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: