Azure Webjob/function 重试次数

Azure Webjob/function Retry count

在 blob 上有触发器的 webjob 中,我想管理我的重试计数,因为我需要在最后一次重试计数时做一些事情,如果我只做一个 try-catch,我将失去我的重试机制,我等不及消息中毒了,因为在 blob 中触发所有监听 blob 的作业的所有消息都进入同一个队列,在我阅读所有队列之前我不知道毒消息来自哪里!

有什么想法(如果可能的话)获得这个重试次数吗?

您可以通过 "queues" 配置中的 maxDequeueCount 设置来控制最大重试次数。这会影响 blob 函数,因为在后台使用控制队列将 blob 分派给您的函数。

下面是配置队列的示例代码,您可以在其中配置 maxDequeueCount,默认数量应为 5。这是文档 link:Queue storage trigger configuration.

    static void Main()
{
    var builder = new HostBuilder();
    builder.ConfigureWebJobs(b =>
    {
        b.AddAzureStorageCoreServices();
        b.AddAzureStorage(a => {
            a.BatchSize = 8;
            a.NewBatchThreshold = 4;
            a.MaxDequeueCount = 4;
            a.MaxPollingInterval = TimeSpan.FromSeconds(15);
        });
    });
    var host = builder.Build();
    using (host)
    {

        host.Run();
    }
}