Mettez en file d'attente des tâches d'exécution de code asynchrone à l'aide de l'API REST Cloud Tasks, de l'API RPC ou de la bibliothèque cliente Google Cloud et d'un service standard App Engine Java 11/17 en tant que cible Push.
Cet exemple Java 11 utilise deux applications :
- L'application
tasks
s'exécute localement en tant qu'outil de ligne de commande pour créer et ajouter des tâches à la file d'attente. - L'application Spring Boot
tasks-handler
traite les requêtes Cloud Tasks en tant que nœud de calcul en servant de point de terminaison pour recevoir les requêtes de tâches. Il s'agit de l'application App Engine principale que vous déployez.
Avant de commencer
Pour déployer l'exemple d'application, procédez comme suit :
- Téléchargez et installez le kit de développement Java SE 11 (JDK).
- Suivez les instructions de configuration de Cloud Tasks.
- Téléchargez et installez Maven pour créer, déployer et gérer votre application.
- Initialisez la CLI gcloud et configurez-la pour utiliser le projet que vous avez créé précédemment.
Installez le composant gcloud CLI
app-engine-java
:gcloud components install app-engine-java
Configurer l'exemple
Pour télécharger et installer l'exemple, procédez comme suit :
Clonez le dépôt de l'exemple d'application sur votre ordinateur local :
git clone https://github.com/GoogleCloudPlatform/java-docs-samples.git
Vous pouvez également télécharger l'exemple en tant que fichier zip et l'extraire.Accédez au répertoire de premier niveau pour l'application
tasks-handler
:cd java-docs-samples/appengine-java11/tasks-handler/
Déployer l'application
tasks-handler
sur App Enginemvn package appengine:deploy -Dapp.deploy.projectId=PROJECT_ID
Remplacez PROJECT_ID par l'ID de votre projet Cloud. Si votre ID de projet est déjà inclus dans le fichier
pom.xml
, vous n'avez pas besoin d'inclure la propriété-Dapp.deploy.projectId
dans la commande que vous exécutez.
Créer une file d'attente
Utilisez la commande gcloud queues
de Google Cloud CLI pour créer votre file d'attente.
Dans la ligne de commande, saisissez ce qui suit :
gcloud tasks queues create MY_QUEUE
Attendez que la file d'attente s'initialise. Vérifiez la création de votre file d'attente à l'aide de la commande
describe
:gcloud tasks queues describe MY_QUEUE
Le résultat devrait ressembler à ceci :
name: projects/PROJECT_ID/locations/LOCATION_ID/queues/MY_QUEUE // Note these ids rateLimits: maxBurstSize: 100 maxConcurrentDispatches: 1000 maxDispatchesPerSecond: 500.0 retryConfig: maxAttempts: 100 maxBackoff: 3600s maxDoublings: 16 minBackoff: 0.100s state: RUNNING
Ajouter une tâche à la file d'attente
Créez une tâche localement, ajoutez-la à la file d'attente que vous avez configurée, puis transmettez cette tâche à un nœud de calcul asynchrone :
Accédez au répertoire
appengine-java11/tasks
et compilez l'application :cd ../tasks mvn package
Définissez les variables d'environnement suivantes sur votre ordinateur. L'exemple d'application utilise ces variables pour créer la requête qui ajoute des tâches à la file d'attente :
export GOOGLE_CLOUD_PROJECT=PROJECT_ID // The project ID you set up above export LOCATION_ID=LOCATION_ID // The region in which your queue is running export QUEUE_ID=MY_QUEUE // The queue you created above
Remarque : Vous pouvez trouver l'ID d'emplacement à l'aide de la commandegcloud
suivante :gcloud tasks locations list
Créez une tâche, ciblée sur le point de terminaison
/tasks/create
du contrôleur de gestionnaire de tâches que vous avez déployé, avec une charge utile spécifiée. La charge utile peut être n'importe quelle donnée de la requête dont le nœud de calcul a besoin pour effectuer le traitement de la tâche. Elle est ici codée en dur dans l'exemple et n'a pas besoin d'être spécifiée :mvn exec:java -Dexec.mainClass="com.example.task.CreateTask"
Une fois la tâche transmise au nœud de calcul et que celui-ci la traite, le nœud de calcul renvoie un code d'état de réussite 2xx au service Cloud Tasks et la supprime automatiquement de la file d'attente.Vérifiez que la tâche a bien été reçue en affichant les journaux du service de nœud de calcul :
gcloud app logs read
Étapes suivantes
Maintenant que vous avez ajouté une tâche à une file d'attente Cloud Tasks, continuez à explorer Cloud Tasks en consultant les pages suivantes :
- Gérez les tâches et les files d'attente existantes, y compris leur suppression, avec la section Gérer les files d'attente et les tâches.
- Créez et configurez des files d'attente Cloud Tasks à l'aide du guide Créer des files d'attente Cloud Tasks.
- Obtenez davantage d'informations sur la gestion des files d'attente avec gRPC dans la documentation de référence de l'API gRPC.
- Apprenez-en davantage sur la gestion des files d'attente avec REST dans la documentation de référence de l'API REST.
- Apprenez-en davantage sur les files d'attente Cloud Tasks avec la Présentation de Cloud Tasks