Java 8 has reached end of support
and will be deprecated
on January 31, 2026. After deprecation, you won't be able to deploy Java 8
applications, even if your organization previously used an organization policy to
re-enable deployments of legacy runtimes. Your existing Java
8 applications will continue to run and receive traffic after their
deprecation date. We recommend that
you migrate to the latest supported version of Java.
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.
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.
Retrying tasks
You can customize your own scheme for task retries by
adding the retry
parameters
element in queue.xml. 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.
The following example demonstrates various retry scenarios:
In 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.
In 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, ...).
In 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, ...).
[[["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-25 UTC."],[[["\u003cp\u003eApp Engine automatically retries failed push tasks until they succeed, with a default retry rate that gradually decreases to a maximum of once per hour to prevent overloading the application.\u003c/p\u003e\n"],["\u003cp\u003eRetry parameters can be customized either within the \u003ccode\u003equeue.xml\u003c/code\u003e file or directly on the \u003ccode\u003eQueue.add()\u003c/code\u003e method, with the latter taking precedence when both are specified.\u003c/p\u003e\n"],["\u003cp\u003eCustom retry schemes can define the maximum number of retries, the time limit for retries, and the intervals between retry attempts, as demonstrated through the \u003ccode\u003efooqueue\u003c/code\u003e, \u003ccode\u003ebarqueue\u003c/code\u003e, and \u003ccode\u003ebazqueue\u003c/code\u003e examples in the \u003ccode\u003equeue.xml\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eWhen configuring retries, parameters such as \u003ccode\u003emin-backoff-seconds\u003c/code\u003e, \u003ccode\u003emax-backoff-seconds\u003c/code\u003e, and \u003ccode\u003emax-doublings\u003c/code\u003e can be adjusted to define the retry behavior, including linear or exponential backoff strategies.\u003c/p\u003e\n"]]],[],null,[]]