Bar*_*ara 10 python google-app-engine task-queue
我有一个Python GAE应用程序.
我希望我的任务停止运行,或者只是在失败时重试一次.现在,尽管我的yaml文件正在告诉他们,但它们仍然会永远运行!
这是一个queue.yaml条目:
- name: globalPurchase
rate: 10/s
bucket_size: 100
retry_parameters:
task_retry_limit: 1
Run Code Online (Sandbox Code Playgroud)
如果globalPurchase任务因500错误代码而失败,则会一直重试,直到日志中显示此消息成功为止:
"队列"globalPurchase"上名为"task14"的任务失败,代码为500;将在30秒后重试"
为什么task_retry_limit实际上没有被使用?
我有同样的问题.这方面的文档和工具缺乏,但这是我发现的:
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(显然是最小值),你仍然可以重试一次.小智 5
我遇到了同样的问题,奇怪的是它似乎在我离开它几个小时后开始工作正常......也许 GAE 需要一些时间来刷新??
无论如何,对我有用的设置是:
# configure the default queue
- name: default
rate: 1/s
retry_parameters:
# task will stop retrying ONLY when BOTH LIMITS ARE REACHED
task_retry_limit: 1
task_age_limit: 1s
Run Code Online (Sandbox Code Playgroud)
小智 2
task_retry_limit如果您根本不想重试,则应该设置为零,并且需要将其与task_age_limit. task_try_limitappengine 任务队列重试逻辑使用和的组合task_age_limit来确定何时停止重试。
| 归档时间: |
|
| 查看次数: |
2342 次 |
| 最近记录: |