Stay organized with collections Save and categorize content based on your preferences.
Push tasks being processed via a task queue can fail for many reasons. If a handler fails to execute a task (and therefore returns any HTTP status code outside of the range 200–299), App Engine retries the task until it succeeds.
This API is supported for first-generation runtimes and can be used when upgrading to corresponding second-generation runtimes. If you are updating to the App Engine Python 3 runtime, refer to the migration guide to learn about your migration options for legacy bundled services.By default, the system gradually reduces the retry rate to avoid overloading your application with too many requests, but schedules retry attempts to recur at a maximum of once per hour until the task succeeds.
Important: Retry options can be configured for the queue as well specified on theTask
object. When both are specified, the latter takes precedence. Retrying tasks
You can customize your own scheme for task retries by adding the retry parameters element in
. This addition allows you to specify the maximum number of times to retry failed tasks in a specific queue. You can also set a time limit for retry attempts and control the interval between attempts.queue.yaml
The following example demonstrates various retry scenarios:
fooqueue
, tasks are retried up to seven times and for up to two days from the first execution attempt. After both limits are passed, it fails permanently.barqueue
, App Engine attempts to retry tasks, increasing the interval linearly between each retry until reaching the maximum backoff and retrying indefinitely at the maximum interval (so the intervals between requests are 10s, 20s, 30s, ..., 190s, 200s, 200s, ...).bazqueue
, the retry interval starts at 10s, then doubles three times, then increases linearly, and finally retries indefinitely at the maximum interval (so the intervals between requests are 10s, 20s, 40s, 80s, 160s, 240s, 300s, 300s, ...).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: 300
max_doublings: 3
What's next
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2025-08-07 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-07 UTC."],[[["App Engine automatically retries tasks that fail, with a default strategy of gradually reducing the retry rate."],["Retry configurations can be set at the queue level in `queue.yaml` to customize the number of retries, time limits, and intervals between attempts."],["Retry options can also be specified on the `Task` object, and when both queue and task level are set, the `Task` object parameters take precedence."],["Various retry behaviors are demonstrated in the provided examples, including limiting the number of retries and implementing linear or exponential backoff strategies."]]],[]]
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4