Google App Engine:task_retry_limit 不起作用? [英] Google App Engine: task_retry_limit doesn't work?
问题描述
我有一个 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=1
和task_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
andtask_age_limit
is set, then the queue.yaml is rejected with a message thattask_retry_limit
must be positive. - Similarly, it complains if
task_age_limit=0
. - If you set
task_retry_limit=1
andtask_age_limit=1s
(apparently the minimum values), you still get one retry.
这篇关于Google App Engine:task_retry_limit 不起作用?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
- If
- 如果