Cette page explique comment utiliser l'API Deferred, l'un des anciens services groupés, avec l'environnement d'exécution Python 3 pour l'environnement standard. Votre application peut accéder aux services groupés via le SDK des services App Engine pour Python 3.
Présentation
Auparavant, le package différée google.appengine.ext.deferred
dépendait du framework webapp dans Python 2. Étant donné que l'environnement logiciel webapp a été supprimé dans le SDK des services App Engine pour Python 3, vous devez apporter quelques modifications lors de la mise à niveau de votre application Python 2 vers Python 3.
Activer l'API Deferred
Pour activer l'API Deferred pour Python 3, vous n'avez plus besoin de définir builtins.deferred
sur on
dans le fichier app.yaml
. Pour activer l'API, vous devez transmettre use_deferred=True
dans l'appel à wrap_wsgi_app()
.
Similitudes et différences
Par défaut, l'API Deferred pour Python 3 utilise la même URL /_ah/queue/deferred
et la même file d'attente par défaut que dans Python 2. Notez que pour les applications qui migrent vers Cloud Tasks, la file d'attente par défaut n'est pas créé automatiquement et la bibliothèque de tâches différées n'est pas disponible.
Si votre application utilise le point de terminaison /_ah/queue/deferred
par défaut, l'utilisation de deferred.defer()
dans Python 3 reste identique à Python 2.
Si votre application utilise une URL personnalisée pour l'exécution de tâches différées, vous devez apporter des modifications, car la classe TaskHandler
du module deferred
pour Python 2 a été supprimée dans la version Python 3 de cette API.
Pour définir une URL personnalisée pour l'exécution de tâches différées, l'application peut remplacer la méthode post
ou run_from_request
dans la classe deferred.Handler
(anciennement deferred.TaskHandler
dans Python 2) et transmettre le paramètre environ
qui représente un dictionnaire contenant des paramètres de requête WSGI. La méthode post
peut ensuite être appelée à partir du point de terminaison personnalisé (comme illustré dans les exemples Python 3).
L'utilisation de bout en bout de l'API Deferred Python 3, telle que le routage des requêtes et l'accès au dictionnaire environ
, dépend du framework Web vers lequel l'application migre. Comparez les modifications de code apportées à partir de l'exemple Python 2 aux exemples Python 3 des sections suivantes.
Exemples Python 3
L'exemple suivant montre comment exécuter une tâche différée à l'aide d'un point de terminaison par défaut, ainsi que d'un point de terminaison personnalisé dans une application Flask et une application Django.
Flask
Django
Sans framework
Exemples de code
Pour afficher les exemples de code complets de ce guide, consultez GitHub.