首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为使用GAE延迟库排队的任务指定重试限制

为使用GAE延迟库排队的任务指定重试限制
EN

Stack Overflow用户
提问于 2016-04-13 16:40:03
回答 3查看 1K关注 0票数 0

我们正在使用GAE 递延库卸载某些耗时的任务,并想知道如何为这些卸载的任务设置重试限制。我们遇到的问题是,某些任务将被永远地重新尝试,因为由于某些不可恢复的异常,该任务永远不会成功。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-04-14 11:22:17

根据文献资料,可以使用_retry_optionsdeferred.defer API将重试选项传递给关联的Task()实例:

_retry_options,_countdown,_eta,_headers,_name,_target,_transactional,_url,_queue:传递到任务队列--有关详细信息,请参阅任务队列文档。

来自文档

..。

您可以使用TaskRetryOptions()'s task_retry_limit属性:

task_retry_limit 失败任务的最大重试次数。 在push队列中,每次App尝试任务时,计数器都会递增,直到指定的task_retry_limit。如果使用task_age_limit指定,App将重新尝试该任务,直到达到两个限制为止。 在拉队列中,每次租用任务时,计数器都会递增,直到指定的task_retry_limit为止。一旦任务被租出限制中指定的次数,任务就会自动删除。

注意:答案只是基于文档,我并没有真正实现它,YMMV。

票数 1
EN

Stack Overflow用户

发布于 2016-04-14 09:04:37

根据文档

代码语言:javascript
运行
复制
queue:
- name: fooqueue
  rate: 1/s
  retry_parameters:
    task_retry_limit: 7
    task_age_limit: 2d
- name: barqueue
  rate: 1/s
  retry_parameters:
    min_backoff_seconds: 10
    max_backoff_seconds: 200
    max_doublings: 0
- name: bazqueue
  rate: 1/s
  retry_parameters:
    min_backoff_seconds: 10
    max_backoff_seconds: 200
    max_doublings: 3
票数 1
EN

Stack Overflow用户

发布于 2016-04-14 09:20:36

检查任务中的X-Appengine-TaskretrycountX-Appengine-Taskexecutioncount http标头值。

如果不想重试任务,可以引发deferred.PermanentTaskFailure异常。此异常将只记录下来,任务将不再运行。

访问http头的不同方法:

由taskqueue触发的http处理程序的 num_tries =

由延迟库触发的函数的webapp2.get_request().headers.get('X-AppEngine-TaskRetryCount'): num_tries =

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36604616

复制
相关文章

相似问题

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