Comprendre Cloud Tasks

Cette page pr�sente les t�ches et les files d'attente de Cloud�Tasks. Elle d�crit �galement quand et comment les utiliser. Cloud�Tasks vous permet de trier les op�rations qui peuvent �tre effectu�es ind�pendamment du flux principal de votre application et de les traiter de mani�re asynchrone � l'aide de gestionnaires que vous cr�ez. Ces op�rations ind�pendantes sont appel�es t�ches. Par exemple, vous devez mettre � jour une base de donn�es dans le cadre du traitement d'une requ�te utilisateur, mais les mises à jour peuvent prendre beaucoup de temps. Le déchargement de cette action en tant que tâche vous permet de résoudre plus rapidement la requête.

La tâche déchargée est ajoutée à une file d'attente, qui la conserve jusqu'à ce qu'elle soit exécuté avec succès. Selon votre configuration initiale, la file d'attente peut également servent à contrôler le flux de distribution. Vous créez et configurez la file d'attente, qui est ensuite gérée par le service Cloud Tasks. Une fois les tâches ajoutées, la file d'attente les envoie et s'assure qu'elles sont traitées de manière fiable par vos nœuds de calcul. Les complexités associées à ce processus, telles que les coûts de la latence subie par l'utilisateur, les plantages du serveur, les limites de consommation des ressources et la gestion des nouvelles tentatives, sont gérées par le service.

Cloud Tasks est conçu pour fournir une exécution de type "au moins une fois". En d'autres termes, si une tâche est ajoutée, la file d'attente l'exécutera au moins une fois. Dans de rares cas, l'exécution de plusieurs tâches est possible. doit garantir l'absence d'effets secondaires néfastes d'une exécution répétée. Vos gestionnaires doivent être idempotent.

Les tâches elles-mêmes sont constituées d'un nom unique, d'informations de configuration et, éventuellement, de données de la requête initiale, appelées "charge utile", nécessaires au traitement de la requête. Lorsque la charge utile est envoyée dans le corps de la requête, les tâches incluant des charges utiles doivent utiliser POST ou PUT comme méthode HTTP.

Pour accéder au service Cloud Tasks à l'aide de l'API Cloud Tasks , vous devez vous disposez d'un projet Google Cloud.

Cas d'utilisation

Vous trouverez ci-dessous des cas d'utilisation types :

  • Accélération des temps de réponse des utilisateurs en déléguant à un nœud de calcul des opérations en arrière-plan potentiellement lentes, telles que des mises à jour de base de données
  • Préservation des requêtes dans le contexte d'incidents de production inattendus
  • Atténuation des pics de trafic en supprimant les tâches non destinées aux utilisateurs du parcours utilisateur principal
  • Gestion des taux d'appels d'API tierces

Files d'attente Cloud Tasks avec cibles HTTP

Dans le cas de cibles HTTP génériques, le service Cloud Tasks transmet la requête de tâche au nœud de calcul, situé sur n'importe quel point de terminaison HTTP générique, en fonction de la configuration de la tâche. Ce point de terminaison peut se trouver sur des fonctions Cloud Run, Cloud Run, GKE, Compute Engine ou même sur un serveur Web sur site, en fonction de la configuration de la tâche. Ces files d'attente distribuent les requêtes à un débit fiable et configurable. Elles garantissent une exécution sûre des tâches. Une fois celle-ci réussie, tous les nœuds de calcul doivent envoyer un code de réponse HTTP (200-299) au service Cloud�Tasks avant l'expiration du délai par défaut de 10 minutes, avec une limite maximale de 30 minutes. Si une réponse différente est envoyée, ou si aucune réponse n'est transmise, la tâche est relancée.

Files d'attente basées sur HTTP

La cible doit gérer les nœuds de calcul liés au trafic et les tâches de nettoyage une fois celles-ci terminées.

Si votre cible requiert une authentification, vous devez configurer deux comptes de service, un pour votre application (le client) et un pour la file d'attente elle-même. Les autorisations requises sont accordées aux deux comptes et un identifiant pour le compte de service client doit être inclus dans la requête de tâche. Voir Créer des tâches HTTP Target pour plus des informations.

Files d'attente Cloud Tasks avec cibles App Engine

Cloud Tasks est compatible avec les environnements App Engine suivants :

  • Environnements d'exécution standards App Engine de deuxième génération
  • Environnement flexible App Engine

Les utilisateurs des environnements d'exécution de première génération d'App Engine qui utilisent actuellement l'API Task Queue peuvent migrer vers Cloud Tasks. Pour savoir comment procéder, consultez Migrez les anciens services groupés. Les utilisateurs des environnements d'exécution App Engine de première génération qui n'utilisent pas de tâches groupées peut être mis à niveau vers des environnements d'exécution de deuxième génération Cloud Tasks.

Dans le cas des cibles App Engine, le service Cloud Tasks transmet également la demande de tâche au gestionnaire, mais ce nœud de calcul se trouve dans App Engine. Toutes les files d'attente qui ciblent les gestionnaires App Engine doivent donc disposer d'une application App Engine ; Les gestionnaires doivent s'exécuter dans la région où se trouve L'application App Engine s'exécute. Cette région sert également de Paramètre LOCATION_ID pour vos requêtes Cloud Tasks.

Les tâches sont acheminées en fonction de la manière dont la tâche (ou, moins fréquemment, de la file d'attente elle-même) est configurée. Les files d'attente distribuent les requêtes à un débit fiable et configurable. Une exécution fiable des tâches est ainsi garantie. Une fois celle-ci réussie, tous les nœuds de calcul doivent envoyer un code de réponse HTTP (200-299) au service Cloud Tasks dans un délai spécifique en fonction du type de scaling de l'instance du service : 10 minutes pour le scaling automatique ou jusqu'à 24 heures pour le scaling manuel. Si une r�ponse diff�rente est envoy�e, ou qu'aucune r�ponse n'est envoyée, la tâche est relancée.

Files d'attente basées sur App Engine

Étant donné que les gestionnaires font partie d'App Engine, l'API Cloud Tasks le service lui-même peut gérer une grande partie des processus de la tâche, le scaling les employés en fonction du trafic et supprimer les tâches lorsqu'ils terminé.

Régions acceptées par cible

Si votre cible est un point de terminaison HTTP/S, Cloud Tasks est disponible dans toutes les régions Google Cloud disponibles pour Cloud Tasks.

Si votre cible est une application App Engine située dans votre projet en cours :

  • Une tâche ciblant App Engine ne peut être créée que dans la région App Engine du projet.

  • Un projet Google Cloud ne peut contenir qu'une seule application App Engine, et la région dans laquelle se trouve l'application App Engine ne peuvent pas être modifiées une fois l'application créée.

  • App Engine est régional, ce qui signifie que l'infrastructure qui s'exécute si votre application est située dans une région spécifique. Si vous voulez répartir les ressources de calcul files d'attente dans plusieurs régions, ciblez plutôt un point de terminaison HTTP/S.

  • Si vous n'utilisez pas App Engine comme cible, vous n'avez pas besoin de déployer d'application App Engine et vous pouvez désactiver toute application App Engine existante.

Workflows

Voici le workflow général :

  1. Vous créez un nœud de calcul pour traiter les tâches.
  2. Vous créez une file d'attente.
  3. Vous créez des tâches par programmation et les ajoutez à la file d'attente.
  4. Le service Cloud Tasks renvoie un code d'état "OK" à l'application d'origine. Cela indique que la tâche a bien été écrite dans l'espace de stockage Cloud Tasks. La requête de création de tâche devient ainsi hautement disponible et durable.
  5. Les tâches sont transmises au nœud de calcul.
  6. Le nœud de calcul traite la tâche.
  7. Pour terminer la séquence, le nœud de calcul renvoie un code d'état de réussite 2xx au service Cloud Tasks.

Une fois la tâche transférée à la file d'attente, aucune donnée n'est mise à la disposition de la requête initiale.

Fonctionnalités

Cloud Tasks vous permet d'envoyer des éléments de travail asynchrones avec les contrôles suivants :

  • Planifier des délais de distribution spécifiques
  • Gérer les rythmes de distribution
  • Configurer le comportement des nouvelles tentatives
  • Accéder à des tâches individuelles et les gérer dans une file d'attente
  • Activer la déduplication des tâches

Conditions d'utilisation

Le tableau suivant répertorie les termes clés décrivant certains aspects du comportement de Cloud Tasks.

Terme Définition
File d'attente Ensemble de tâches ayant le même type de cible, géré par une configuration unique.
Type de cible Où et comment une tâche est traitée.
Nœud de calcul Service qui traite des tâches.
Tentative Tentative d'exécution d'une tâche.
Tentative d'envoi Moment où Cloud Tasks a envoyé la tâche à sa cible.
Tentative de réponse Réponse d'un worker indiquant que la tâche associée au la tâche a bien été terminée ou a échoué.
réessayer Tentatives multiples d'exécution d'une tâche. Le nombre de tentatives est défini via l'élément RetryConfig.
Limites de débit Limites de débit pour une file d'attente.

Métriques

Les métriques Google Tasks prédéfinies suivantes sont disponibles avec Cloud Monitoring.

Type de métrique
Nom à afficher
Genre, type, unité
Description
Libellés
api/request_count
Requêtes API
DELTA, INT64, 1
Nombre d'appels d'API Cloud Tasks.
api_method : méthode API appelée (par exemple, "CreateTask").
response_code�: code de r�ponse canonique sous forme de cha�ne (par exemple, "ok").
queue/depth
Profondeur de la file d'attente (b�ta)
GAUGE, INT64, 1
Nombre de t�ches dans la file d'attente. �chantillonn� toutes les 60�secondes. Apr�s �chantillonnage, les donn�es ne sont pas visibles pendant un d�lai pouvant atteindre 120�secondes.
queue/task_attempt_count
Nombre de tentatives de t�ches
DELTA, INT64, 1
Nombre de t�ches que la file d'attente a tent� d'envoyer r�parties par code de r�ponse de t�che.
response_code�: code de r�ponse canonique sous forme de cha�ne (par exemple, "ok").
queue/task_attempt_delays
Retards de tentative de t�che
DELTA, DISTRIBUTION, ms
D�lai entre chaque heure de tentative planifi�e et l'heure de tentative r�elle.