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();
}
}
在 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();
}
}