首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Azure WebJob QueueTrigger重试策略

Azure WebJob QueueTrigger重试策略
EN

Stack Overflow用户
提问于 2015-02-17 17:27:38
回答 3查看 3.9K关注 0票数 2

我想让我的队列每90分钟重试一次失败的and作业,并且只尝试3次。

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

代码语言:javascript
复制
        CloudQueueClient queueClient = storageAccount.CreateCloudQueueClient();
        IRetryPolicy linearRetryPolicy = new LinearRetry(TimeSpan.FromSeconds(5400), 3);
        queueClient.DefaultRequestOptions.RetryPolicy = linearRetryPolicy;
        triggerformqueue = queueClient.GetQueueReference("triggerformqueue");
        triggerformqueue.CreateIfNotExists();

但是,在模拟失败的webjob尝试时,队列使用默认的重试策略。我遗漏了一些东西。

EN

回答 3

Stack Overflow用户

发布于 2015-02-18 07:15:52

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

有关更多信息,请查看此Getting Started with Queue Storage文档。

票数 0
EN

Stack Overflow用户

发布于 2015-10-28 21:05:29

有一些类似Azure WebJobs SDK扩展和ErrorTriggerAttribute的东西(它在Nuget1.0.0-Beta1包中还没有提供,但你可以访问公共存储库)

公共静态空ErrorMonitor( ErrorTrigger("0:30:00",10,= "1:00:00") TraceFilter过滤器,TextWriter日志)

https://github.com/Azure/azure-webjobs-sdk-extensions#errortrigger

票数 0
EN

Stack Overflow用户

发布于 2017-07-14 01:30:32

当你向队列中添加一个项目时,你需要使用你的RetryPolicy,而不是在队列本身上,例如。

代码语言:javascript
复制
var queue = queueClient.GetQueueReference("myQueue");
queue.CreateIfNotExists();

options = new QueueRequestOptions { RetryPolicy = linearRetryPolicy };
await queue.AddMessageAsync(yourMessage, null, new TimeSpan(0, delayMinutes, 0), options, null);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28558580

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档