Google App Engine:task_retry_limit 不起作用? [英] Google App Engine: task_retry_limit doesn't work?

查看:23
本文介绍了Google App Engine:task_retry_limit 不起作用?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个 Python GAE 应用.

I have a Python GAE app.

我希望我的任务停止运行,或者如果它们失败就重试一次.现在,尽管我的 yaml 文件告诉他们什么,他们却永远运行!

I want my tasks to stop running or just retry once if they fail. Right now, they run forever despite what my yaml file is telling them!

这是一个 queue.yaml 条目:

Here is a queue.yaml entry:

 - name: globalPurchase
   rate: 10/s
   bucket_size: 100
   retry_parameters:
     task_retry_limit: 1

如果 globalPurchase 任务失败并显示 500 错误代码,它将永远重试,直到成功并在日志中显示此消息:

If globalPurchase task fails with a 500 error code, it is retried forever until it succeeds with this message in the logs:

队列globalPurchase"上名为task14"的任务失败,代码为 500;将在 30 秒后重试"

"Task named "task14" on queue "globalPurchase" failed with code 500; will retry in 30 seconds"

为什么实际上没有使用 task_retry_limit?

Why is task_retry_limit not actually being used?

推荐答案

我遇到了同样的问题.缺乏这方面的文档和工具,但我发现了以下内容:

I had the same problem. The documentation and tooling in this area is lacking, but here's what I found:

  • 重试参数在开发服务器中不起作用.我尝试了很多不同的组合,但总是间隔 30 秒无限重试.当我部署到生产服务器时,这些参数确实生效了.
  • 我还没有找到禁用所有重试的方法(除了确保我的处理程序不会抛出异常).
    • 如果task_retry_limit=0,那么它仍然会重试.
    • 如果设置了 task_retry_limit=0 并且设置了 task_age_limit,则 queue.yaml 将被拒绝,并显示消息 task_retry_limit 必须为正.
    • 同样,如果 task_age_limit=0,它会抱怨.
    • 如果您设置了 task_retry_limit=1task_age_limit=1s(显然是最小值),您仍然可以重试一次.
    • The retry parameters have no effect in the development server. I tried lots of different combinations, but it was always just indefinite retries 30s apart. The parameters did take effect when I deployed to the production server.
    • I haven't found a way to disable all retries (other than by ensuring that my handler doesn't throw exceptions).
      • If task_retry_limit=0, then it still retries.
      • If task_retry_limit=0 and task_age_limit is set, then the queue.yaml is rejected with a message that task_retry_limit must be positive.
      • Similarly, it complains if task_age_limit=0.
      • If you set task_retry_limit=1 and task_age_limit=1s (apparently the minimum values), you still get one retry.

      这篇关于Google App Engine:task_retry_limit 不起作用?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆