這是一個新手問題。
我有一個使用存盤佇列(Client.Azure.Storage.Queues)的計時器觸發器
客戶端是否會自動將未處理的訊息發送到毒佇列?此代碼模擬錯誤。如果一切正常,則洗掉該訊息。
public async Task Run([TimerTrigger("%TimerExpression%")]TimerInfo myTimer, ILogger log)
{
log.LogInformation($"C# Timer trigger function executed at: {DateTime.Now}");
QueueMessage[] messages = await _queueClient.ReceiveMessagesAsync(maxMessages: 10, null );
try
{
foreach (QueueMessage message in messages)
{
Console.WriteLine(message.DequeueCount "-------------------");
Console.WriteLine (message.Body)=
_queueClient.(message);
throw new ApplicationException("HELP");
_queueClient.DeleteMessage(message.MessageId, message.PopReceipt);
}
}
catch(Exception e)
{
Console.WriteLine(e.Message);
}
}
我希望在 2 次重試后訊息不會回傳到佇列:
{
"version": "2.0",
"logging": {
"applicationInsights": {
"samplingSettings": {
"isEnabled": true,
"excludedTypes": "Request"
}
}
},
"extensions": {
"queues": {
"retry": {
"strategy": "fixedDelay",
"maxRetryCount": 2,
"delayInterval": "00:00:03"
}
}
}
}
還是我錯過了什么?或者我必須手動將訊息添加到毒佇列嗎?
問候斯特凡
uj5u.com熱心網友回復:
客戶端是否會自動將未處理的訊息發送到毒佇列?
不,不是的。
但是,Azure Functions 佇列觸發器將. 如果您從佇列中觸發函式而不是計時器,那么您最終會收到有毒佇列訊息。
如果您直接使用存盤客戶端而不觸發佇列,那么您需要自己處理毒佇列。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/416124.html
標籤:
