Utiliser des files d'attente d'envoi en Python 2
Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
Cette page présente les files d'attente d'envoi. Les files d'attente d'envoi exécutent des tâches en envoyant des demandes HTTP aux services de nœuds de calcul App Engine. Les demandes sont livrées à un taux constant. Si une tâche échoue, le service relance la tâche en envoyant une autre requête. Vous devez fournir un gestionnaire pour chaque type de tâche que vous utilisez. Un seul service peut avoir plusieurs gestionnaires pour différents types de tâches ou vous pouvez utiliser différents services pour gérer différents types de tâches.

La date limite de la tâche
Lorsqu'un service de nœud de calcul reçoit une demande de tâche d'envoi, il doit gérer la demande et envoyer une réponse HTTP avant une date limite qui dépend du type de dimensionnement du service de nœud de calcul.
Les services de mise à l'échelle automatique doivent s'achever au plus tard 10 minutes plus tard.
Scaling manuel et de base : les requêtes peuvent durer jusqu'à 24 heures.
Un code de réponse HTTP entre 200 et 299 indique un succès ; toutes les autres valeurs indiquent que la tâche a échoué. Si la tâche ne répond pas dans le délai imparti ou renvoie une valeur de réponse non valide, la tâche est réessayée.
Réessayer une tâche ayant échoué
Si un gestionnaire de demandes de tâches d'envoi renvoie un code d'état HTTP situé en dehors de la plage 200-299 ou ne renvoie aucune réponse avant l'échéance de la tâche, la file d'attente réessaie la tâche jusqu'à ce qu'elle aboutisse. Le système recule progressivement pour éviter de surcharger votre application avec un trop grand nombre de demandes, mais les tentatives de répétition des tâches en échec se répètent au moins une fois par heure.
Travailler avec des files d'attente d'envoi
Lorsque vous travaillez avec des files d'attente d'envoi, vous devez au minimum effectuer les tâches suivantes :
Vous pouvez également :
Lorsque vous utilisez des files d'attente d'envoi, votre application est soumise à des quotas supplémentaires.
Étapes suivantes
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\u003ePush queues execute tasks by sending HTTP requests to App Engine worker services at a consistent rate, with automatic retries for failed tasks.\u003c/p\u003e\n"],["\u003cp\u003eEach task requires a designated handler, which can be managed within a single service or spread across multiple services based on task types.\u003c/p\u003e\n"],["\u003cp\u003eTask completion deadlines vary by service scaling type, with automatic scaling services having a 10-minute limit, while manual and basic scaling services can run for up to 24 hours.\u003c/p\u003e\n"],["\u003cp\u003eSuccessful task completion is indicated by an HTTP response code between 200-299; any other code or a timeout will trigger a task retry, which will occur at a minimum of once per hour.\u003c/p\u003e\n"],["\u003cp\u003eUsing push queues requires creating tasks programmatically and assigning them to queues, along with writing task handlers to process requests.\u003c/p\u003e\n"]]],[],null,["# Using Push Queues in Python 2\n\nThis page provides an overview of push queues. Push queues run tasks by\ndispatching HTTP requests to App Engine worker services. The requests are\ndelivered at a constant rate. If a task fails, the service retries the task,\nsending another request. You must provide a handler for every kind of task you\nuse. A single service can have multiple handlers for different kinds of tasks, or\nyou can use different services to manage different task types.\n| This API is supported for first-generation runtimes and can be used when [upgrading to corresponding second-generation runtimes](/appengine/docs/standard/\n| python3\n|\n| /services/access). If you are updating to the App Engine Python 3 runtime, refer to the [migration guide](/appengine/migration-center/standard/migrate-to-second-gen/python-differences) to learn about your migration options for legacy bundled services.\n\nThe task deadline\n-----------------\n\nWhen a worker service receives a push task request, it must handle the request\nand send an HTTP response before a deadline that depends on the [scaling\ntype](/appengine/docs/legacy/standard/python/an-overview-of-app-engine#instances)\nof the worker service.\n\nAutomatic scaling services must finish before 10 minutes have elapsed.\nManual and basic scaling services can run up to 24 hours.\n\nAn HTTP response code between 200--299 indicates success; all other values\nindicate the task failed. If the task fails to respond within the deadline, or\nreturns an invalid response value, the task is retried.\n\nRetrying a failed task\n----------------------\n\nIf a push task request handler returns an HTTP status code outside the range\n200--299, or fails to return any response before the task deadline occurs, the queue\nretries the task until it succeeds. The system backs off gradually to\navoid flooding your application with too many requests, but schedules retry\nattempts for failed tasks to recur at a minimum of once per hour.\n\nWorking with push queues\n------------------------\n\nWhen working with push queues, at a minimum, you'll need to do the following things:\n\n- [Create tasks\n programmatically](/appengine/docs/legacy/standard/python/taskqueue/push/creating-tasks) and add them to the default push queue, or to one or more named push queues that you have created.\n- [Write a\n handler](/appengine/docs/legacy/standard/python/taskqueue/push/creating-handlers) that processes a task's request, and assign the handler to an App Engine service.\n\nOptionally, you can also:\n\n- [Create and customize multiple\n queues](/appengine/docs/legacy/standard/python/taskqueue/push/creating-push-queues) to perform multiple tasks efficiently.\n- [Monitor and manage](/appengine/docs/legacy/standard/python/taskqueue/push/creating-push-queues#monitoring_queues_in_the_console_name_short) your push queues in the Google Cloud console.\n\nWhen you use push queues, your application is subject to additional\n[quotas](/appengine/docs/quotas#Task_Queue).\n\nWhat's next\n-----------\n\n- Learn how to [create push queues](/appengine/docs/legacy/standard/python/taskqueue/push/creating-push-queues)\n- Learn how to [create tasks](/appengine/docs/legacy/standard/python/taskqueue/push/creating-tasks)\n- Learn about [writing handlers](/appengine/docs/legacy/standard/python/taskqueue/push/creating-handlers)\n- Look at an [example](https://github.com/GoogleCloudPlatform/python-docs-samples/tree/master/appengine/standard/taskqueue/counter)"]]