【发布时间】:2022-01-20 00:51:36
【问题描述】:
这是一个新手问题。
我有一个使用存储队列 (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"
}
}
}
}
或者我错过了什么?还是我必须手动将消息添加到有害队列?
问候 斯蒂芬
【问题讨论】:
标签: azure azure-functions azure-storage-queues