Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
Les tâches d'envoi en cours de traitement via une file d'attente peuvent échouer pour de nombreuses raisons. Si un gestionnaire ne parvient pas à exécuter une tâche (et renvoie donc un code d'état HTTP en dehors de la plage 200-299), App Engine la relance jusqu'à ce qu'elle aboutisse.
Par défaut, le système diminue progressivement le nombre de nouvelles tentatives pour éviter de submerger l'application avec un nombre de requêtes trop important. Toutefois, il programme les nouvelles tentatives à effectuer (une par heure au maximum) jusqu'à ce que la tâche soit exécutée.
Réessayer d'exécuter des tâches
Vous pouvez personnaliser votre propre procédé pour les nouvelles tentatives en ajoutant l'élément retry parameters (paramètres de nouvelle tentative) dans le fichier queue.yaml. Ce paramètre supplémentaire vous permet d'indiquer le nombre maximal de nouvelles tentatives d'exécution des tâches ayant échoué dans une file d'attente donnée. Vous pouvez également définir un délai maximal entre chaque tentative et contrôler l'intervalle entre chacune d'elles.
L'exemple suivant illustre divers scénarios de nouvelles tentatives d'exécution :
Dans fooqueue, les tâches sont relancées jusqu'à sept fois et jusqu'à deux jours après la première tentative d'exécution. Une fois ces deux limites atteintes, la tâche échoue définitivement.
Dans la file d'attente barqueue, App Engine tente de relancer les tâches en augmentant l'intervalle de manière linéaire entre chaque tentative jusqu'à atteindre l'intervalle maximum, puis en relançant indéfiniment des tentatives à l'intervalle maximum (les intervalles entre les requêtes sont donc de 10, 20, 30, ..., 190, 200 secondes, puis toujours 200 secondes).
Dans la file d'attente bazqueue, l'intervalle entre les tentatives commence à 10 secondes puis est doublé trois fois avant d'augmenter de manière linéaire, après quoi les tâches sont relancées indéfiniment à l'intervalle maximum (les intervalles entre les requêtes sont donc de 10, 20, 40, 80, 160, 240, 300 secondes, puis toujours 300 secondes).
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/04/21 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Difficile à comprendre","hardToUnderstand","thumb-down"],["Informations ou exemple de code incorrects","incorrectInformationOrSampleCode","thumb-down"],["Il n'y a pas l'information/les exemples dont j'ai besoin","missingTheInformationSamplesINeed","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2025/04/21 (UTC)."],[[["\u003cp\u003eTasks in a queue that fail are automatically retried by App Engine until they succeed, unless the return is between 200-299.\u003c/p\u003e\n"],["\u003cp\u003eRetry attempts are reduced gradually to avoid overloading the application, and then recur at a maximum of once per hour.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003equeue.yaml\u003c/code\u003e file can be used to customize the retry scheme, including the maximum number of retries, time limits, and intervals between attempts.\u003c/p\u003e\n"],["\u003cp\u003eThe example demonstrates how to configure retry parameters, including setting limits and specifying different retry intervals with varying linear increases or doublings, allowing for fine-tuned task retry behavior.\u003c/p\u003e\n"]]],[],null,["# Retrying Failed Push Tasks\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\nGo Java PHP Python\n\nPush tasks being processed via a task queue can fail for many reasons. If a handler\nfails to execute a task (and therefore returns any HTTP status code outside of\nthe range 200--299), App Engine retries the task until it succeeds.\n| This API is supported for first-generation runtimes and can be used when [upgrading to corresponding second-generation runtimes](/appengine/docs/standard/\n|\n| /services/access). If you are updating to the App Engine runtime, refer to the [Upgrade to second-generation runtimes]() page to learn about your migration options for legacy bundled services.\n\nBy default, the system gradually reduces the retry rate to avoid overloading your application with too many\nrequests, but schedules retry attempts to recur at a maximum of once per hour\nuntil the task succeeds.\n\nRetrying tasks\n--------------\n\nYou can customize your own scheme for task retries by\nadding the [retry\nparameters](/appengine/docs/standard/reference/queueref#retry_parameters)\nelement in [`queue.yaml`](/appengine/docs/standard/reference/queueref). This\naddition allows you to specify the maximum number of times to retry failed tasks\nin a specific queue. You can also set a time limit for retry attempts and\ncontrol the interval between attempts.\n\nThe following example demonstrates various retry scenarios:\n\n- 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.\n- 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, ...).\n- 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, ...).\n\n \u003c?xml version=\"1.0\" encoding=\"utf-8\"?\u003e\n \u003cqueue-entries\u003e\n \u003cqueue\u003e\n \u003cname\u003efooqueue\u003c/name\u003e\n \u003crate\u003e1/s\u003c/rate\u003e\n \u003cretry-parameters\u003e\n \u003ctask-retry-limit\u003e7\u003c/task-retry-limit\u003e\n \u003ctask-age-limit\u003e2d\u003c/task-age-limit\u003e\n \u003c/retry-parameters\u003e\n \u003c/queue\u003e\n \u003cqueue\u003e\n \u003cname\u003ebarqueue\u003c/name\u003e\n \u003crate\u003e1/s\u003c/rate\u003e\n \u003cretry-parameters\u003e\n \u003cmin-backoff-seconds\u003e10\u003c/min-backoff-seconds\u003e\n \u003cmax-backoff-seconds\u003e200\u003c/max-backoff-seconds\u003e\n \u003cmax-doublings\u003e0\u003c/max-doublings\u003e\n \u003c/retry-parameters\u003e\n \u003c/queue\u003e\n \u003cqueue\u003e\n \u003cname\u003ebazqueue\u003c/name\u003e\n \u003crate\u003e1/s\u003c/rate\u003e\n \u003cretry-parameters\u003e\n \u003cmin-backoff-seconds\u003e10\u003c/min-backoff-seconds\u003e\n \u003cmax-backoff-seconds\u003e300\u003c/max-backoff-seconds\u003e\n \u003cmax-doublings\u003e3\u003c/max-doublings\u003e\n \u003c/retry-parameters\u003e\n \u003c/queue\u003e\n \u003c/queue-entries\u003e\n\nWhat's next\n-----------\n\n- Learn more about the [task queue parameters](/appengine/docs/standard/reference/queueref)."]]