我很難理解與QueueClients一起使用的RetryExponential類(並且我也假設SubscriptionClients)。ServiceBus重試指定的屬性含義
該屬性列出here,但我不認爲我的解釋他們的描述是正確的。
這裏是我的解釋......
var minBackoff = TimeSpan.FromMinutes(5); // wait 5 minutes for the first attempt?
var maxBackoff = TimeSpan.FromMinutes(15); // all attempts must be done within 15 mins?
var deltaBackoff = TimeSpan.FromSeconds(30); // the time between each attempt?
var terminationTimeBuffer = TimeSpan.FromSeconds(90); // the length of time each attempt is permitted to take?
var retryPolicy = new RetryExponential(minBackoff, maxBackoff, deltaBackoff, terminationTimeBuffer, 10);
我工作者的角色只是試圖在即使我認爲基於配置過去一小時內處理掉隊列中的消息的兩倍以上,應該更頻繁地熄滅(每30秒+在先前嘗試達90秒期間使用的任何處理時間)。我認爲這些設置會每2分鐘強制一次重試。但是,我不明白這個解釋是如何根據指數的。
我的解釋是否對每個房產(在上面的評論中)是正確的?如果不是(我認爲他們不正確),每個屬性意味着什麼?
邁克你斷言接收不參加重試是正確的。接收操作將返回null或消息,然後需要再次調用以接收下一條消息。重試策略用於處理錯誤並重試這些操作,例如完成消息,發送消息或創建隊列等。 –
@MikeWo每個文檔和人員都會談論MaximumBackoff,但是它的價值是什麼?你知道價值嗎? –
@NuriYILMAZ MaximumBackoff是一個時間跨度。默認情況下,服務總線的重試策略由RetryPolicy.Default設置,它使用30秒的MaximumBackoff。如果您將其設置爲其他內容,則希望使用在檢查隊列進行工作時願意等待的時間最長的值。 – MikeWo