Azure Webjob /功能重试计数

时间:2019-09-12 09:12:21

标签: azure queue azure-functions azure-webjobs

在具有触发器的Webjob中,我想管理重试计数,因为我需要在最后一次重试计数时执行一些操作,如果仅执行try-catch,我将失去重试机制,而我等不及消息中毒了,因为在blob中,所有监听blob的作业的所有消息都会触发到同一队列,直到读取所有队列,我才知道有毒消息从何而来! / p>

那么有什么主意(如果可能的话)获得此重试计数?

1 个答案:

答案 0 :(得分:1)

您可以通过“队列”配置中的maxDequeueCount设置来控制最大重试次数。之所以影响Blob函数,是因为在后台使用了控制队列来将Blob调度到您的函数。

以下是配置队列的示例代码,您可以在其中配置maxDequeueCount,默认数字应为5。这是doc链接: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();
    }
}