繁体   English   中英

Azure Function Blob 触发器重试计数

[英]Azure Function Blob Trigger Retry Count

我遇到的情况是,blob 第一次可能无法处理,但可能会在后续执行中起作用。

我遇到的问题是围绕监控真正的失败,目前第一次失败将引发异常,该异常会被记录并发出警报,但如果第一次重试成功完成,则根据早期的警报无事可做。

有没有办法查看已经发生的重试次数,这样我只能在不再重试时发出警报?

您可以更改 function 处理程序以检索消息元数据,包括出队计数。

从 Azure 存储队列触发器检索队列元数据

[FunctionName("QueueTriggerMetadata")]
public static void Run([QueueTrigger("101functionsqueue", Connection = "AzureWebJobsStorage")]CloudQueueMessage myQueueItem, TraceWriter log)
{
    log.Info("101 Azure Function Demo - Retrieving Queue metadata");

    log.Info($"Queue ID: {myQueueItem.Id}");
    log.Info($"Queue Insertion Time: {myQueueItem.InsertionTime}");
    log.Info($"Queue Expiration Time: {myQueueItem.ExpirationTime}");
    log.Info($"Queue Payload: {myQueueItem.AsString}");

    log.Info($"Dequeue Count: {myQueueItem.DequeueCount }");
}

话虽如此,您可能仍想使用毒队列来处理失败的消息,就像 Mike 在他的回答中建议的那样。 这取决于您的确切情况。

在 Blob 触发器 function 最后一次失败后,Azure 应该将消息写入名为webjobs-blobtrigger-poison的存储队列。 您可以监视此存储队列中是否有新消息,以作为在重试用尽后监视实际故障的一种方式。

请参阅: https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-storage-blob-trigger?tabs=csharp#poison-blobs

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM