Azure WebJob QueueTrigger 重试策略

标签 azure azure-webjobssdk azure-storage-queues retrypolicy

我希望我的队列每 90 分钟重试一次失败的网络作业,并且仅重试 3 次。

创建队列时我使用以下代码

        CloudQueueClient queueClient = storageAccount.CreateCloudQueueClient();
        IRetryPolicy linearRetryPolicy = new LinearRetry(TimeSpan.FromSeconds(5400), 3);
        queueClient.DefaultRequestOptions.RetryPolicy = linearRetryPolicy;
        triggerformqueue = queueClient.GetQueueReference("triggerformqueue");
        triggerformqueue.CreateIfNotExists();

但是,当模拟失败的 Webjob 尝试时,队列使用默认重试策略。 我错过了一些东西。

最佳答案

我认为您可能会倒着思考这个问题。队列实际上并不执行行为。相反,我猜测您想要做的是拥有一个配置为从队列中提取消息的 Web 作业,然后如果由于某种原因无法处理队列中的消息,则让该 Web 作业在 90 分钟后重试。在这种情况下,您只需将不可见超时设置为 90 分钟(默认为 30 秒),这将确保如果消息未完全处理(即 - GetMessage 和 DeleteMessage 都被调用),则消息将重新出现在90分钟后排队。

看看这个 Getting Started with Queue Storage文档以获取更多信息。

关于Azure WebJob QueueTrigger 重试策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28558580/

相关文章:

azure - 在 Azure 数据库之间进行数据传输的正确方法是什么?

c# - Azure 图形 API 不适用于上一页请求 (&previous-page=true)

json - 有没有办法自定义 Azure Function SignalR 服务绑定(bind) (Microsoft.Azure.WebJobs.Extensions.SignalRService) 的 json 设置?

azure - WebJobs SDK 在 AzureWebJobsDashboard 连接中创建的 blob 的清理机制是什么?

azure - 按队列长度自动缩放Azure应用服务

azure - 我的 Azure SQL 备份(按地理位置)在哪里?

.net-core - azure webjob : Read appSettings. json 并将配置注入(inject) TimerTrigger

azure - Azure WebJobs 从哪里读取配置设置?

c# - 如何获取Azure存储队列大小/位置

c# - 毒物队列的到期日期