Choisir Cloud Tasks ou Pub/Sub

Cloud Tasks et Pub/Sub peuvent être utilisés pour la transmission de messages et l'intégration asynchrone. Toutefois, bien qu'ils fonctionnent de manière similaire, ils diffèrent sur quelques points. Ce guide vous aide à choisir le produit adapté à votre cas d'utilisation.

Différences majeures

Pub/Sub et Cloud Tasks diffèrent principalement selon qu'ils utilisent un appel implicite ou explicite.

Pub/Sub dissocie les éditeurs d'événements de leurs abonnés. Les éditeurs n'ont pas besoin de connaître leurs abonnés. Par conséquent, Pub/Sub n'offre aucun contrôle sur la distribution des messages, au-delà de la garantie de distribution. Cela prend en charge l'appel implicite : un éditeur déclenche l'exécution de l'abonné simplement en publiant un événement.

En revanche, Cloud Tasks vise un appel explicite. L'éditeur conserve le contrôle total de l'exécution. Plus spécifiquement, l'éditeur définit un point de terminaison indiquant l'emplacement de distribution de chaque message.

De plus, Cloud Tasks fournit des outils pour la gestion des files d'attente et des tâches qui ne sont pas disponibles pour les éditeurs Pub/Sub. Certaines de ces fonctionnalités sont répertoriées ci-dessous :

  • Planification de distribution spécifique
  • Contrôles des rythmes de distribution
  • Nouvelles tentatives configurables précises
  • Consultation et gestion de tâches individuelles dans une file d'attente
  • Déduplication de la création de tâches

Comparatif détaillé des fonctionnalités

Fonctionnalité Cloud Tasks Pub/Sub
Envoi à l'aide de webhooks Oui Oui
Garantie de distribution de type "au moins une fois" Oui Oui
Nouvelles tentatives configurables Oui Oui
Déduplication de la création de tâches/messages Oui Non
Planification de la distribution Oui Non
Distribution ordonnée Non, l'ordre des tâches mises en file d'attente est conservé au mieux Oui, avec des clés de tri
Contrôles des rythmes explicites Oui Les clients abonnés extracteurs peuvent implémenter le contrôle de flux
Extraction à l'aide de l'API Non Oui
Insertion de lots Oui Oui
Plusieurs gestionnaires/abonnés par message Non Oui
Conservation des tâches/messages 31 jours Jusqu'à 31 jours
Taille maximale des tâches/messages 1 Mo 10 Mo
Rythme de distribution maximal 500 RPS par file d'attente Pas de limite supérieure, sous réserve des quotas de débit régionaux
Disponibilité géographique Régionale Monde
Durée maximale du traitement push gestionnaire/abonné 30 minutes (HTTP)
10 minutes (scaling automatique standard App Engine)
24 heures (scaling manuel ou de base standard App Engine)
60 minutes (environnement flexible App Engine)
10 minutes pour les opérations push
Nombre de files d'attente/d'abonnements 1 000 par projet et par région, ou plus via les demandes d'augmentation de quota 10 000 par projet

Différences de configuration des nouvelles tentatives

Cloud Tasks offre un contrôle précis des nouvelles tentatives de tâches, y compris des limites strictes sur les tentatives et la durée. Pub/Sub se concentre sur la distribution fiable, en utilisant un intervalle exponentiel entre les tentatives et des files d'attente de lettres mortes (DLQ) pour gérer les nouvelles tentatives pour les messages non confirmés.

FonctionnalitéCloud Tasks Pub/Sub
Priorité du cas d'utilisationGarantir l'exécution finale d'une tâche spécifique Garantir la distribution des messages aux abonnés dissociés
Contrôle principalConfiguration des nouvelles tentatives au niveau de la file d'attente et de la tâche Stratégie de nouvelle tentative et DLQ au niveau de l'abonnement
Arrêt des nouvelles tentativesNombre maximal de tentatives, durée maximale des nouvelles tentatives Confirmation du message, expiration du message ou transfert DLQ
Nombre maximal de tentativesConfigurable de manière explicite Indirectement via le nombre maximal de tentatives de distribution DLQ
Optimisation de l'intervalle entre les tentativesIntervalle minimal/maximal entre les tentatives, nombre maximal de doublements Intervalle minimal/maximal entre les tentatives pour la stratégie d'intervalle exponentiel entre les tentatives
Nouvelles tentatives indéfiniesPossible si configuré, mais limité par la limite maximale de conservation des tâches Par défaut pour les messages non confirmés jusqu'à expiration, atténué par la DLQ

Étape suivante