I have a Python GAE app.
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!
Here is a queue.yaml entry:
- name: globalPurchase
rate: 10/s
bucket_size: 100
retry_parameters:
task_retry_limit: 1
If globalPurchase task fails with a 500 error code, it is retried forever until it succeeds with this message in the logs:
"Task named "task14" on queue "globalPurchase" failed with code 500; will retry in 30 seconds"
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:
task_retry_limit=0
, then it still retries.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.task_age_limit=0
.task_retry_limit=1
and task_age_limit=1s
(apparently the minimum values), you still get one retry.I had the same problem, strangely it seems to start working fine after I left it as is for few hours... Perhaps there is some time needed for GAE to refresh??
Anyway, the settings worked for me are:
# 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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With