Problèmes et limites

Il est possible que vous rencontriez les limites et problèmes suivants lors de l'utilisation de Cloud Tasks.

Ordre d'exécution

À l'exception des tâches planifiées pour une exécution ultérieure, les files d'attente de tâches sont totalement indépendantes de l'ordre d'exécution. Il n'existe aucune garantie ni tentative d'optimisation pour exécuter des tâches dans un ordre particulier. Plus précisément, rien ne garantit que les anciennes tâches soient exécutées à moins qu'une file d'attente ne soit complètement vidée. Il existe un certain nombre de cas courants dans lesquels les tâches les plus récentes sont exécutées plus tôt que les tâches les plus anciennes, et les modèles correspondants peuvent changer sans préavis.

Exécution en double

Cloud Tasks vise une sémantique stricte de type "exécution exactement une fois". Toutefois, dans les cas où un compromis doit être trouvé entre une exécution garantie et une exécution en double, le service privilégie l'exécution garantie. Ainsi, un nombre d'exécutions en double supérieur à zéro se produit. Les développeurs doivent prendre des mesures pour s'assurer que l'exécution en double n'est pas un événement catastrophique. Dans un environnement de production, plus de 99,999 % des tâches ne sont exécutées qu'une seule fois.

Limites des ressources

La source la plus courante de mise en attente de tâches dans les files d'attente de traitement immédiat est l'épuisement des ressources sur les instances cibles. Si un utilisateur tente d'exécuter 100 tâches par seconde sur des instances frontend ne pouvant traiter que 10 requêtes par seconde, une mise en attente de tâches est créée. Cela se manifeste généralement de deux manières qui peuvent toutes deux être résolues en augmentant le nombre d'instances traitant les requêtes.

Erreurs liées à l'intervalle entre les tentatives et taux appliqués

Les serveurs surchargés peuvent commencer à renvoyer des erreurs d'intervalle entre les tentatives sous la forme du code de réponse HTTP 503. Cloud Tasks réagit à ces erreurs en ralentissant l'exécution jusqu'à ce que les erreurs cessent d'être exécutées.

Pics de latence et nombre maximal de tâches simultanées

Les serveurs surchargés peuvent également réagir en augmentant fortement la latence. Dans cette situation, les requêtes restent ouvertes plus longtemps. Étant donné que les files d'attente s'exécutent avec un nombre maximal de tâches simultanées, elles peuvent ne pas être en mesure d'exécuter les tâches au débit prévu. Augmenter le nombre max_concurrent_tasks pour les files d'attente affectées peut être utile dans les cas où la valeur définie initialement était trop faible, ce qui entraîne une limite de débit artificielle. Cependant, l'augmentation de max_concurrent_tasks ne soulagera probablement pas la pression des ressources sous-jacentes.

Augmenter les problèmes de tâches de longue durée

Les files d'attente Cloud Tasks augmentent en partie leur sortie en fonction du nombre de tâches envoyées précédemment. Si le gestionnaire de tâches prend beaucoup de temps (de l'ordre de quelques minutes) pour terminer une tâche et renvoyer une réponse positive, il peut y avoir un décalage dans le taux d'augmentation de la file d'attente.

Afficher plus de 5 000 tâches

Si vous avez plus de 5 000 tâches, certaines ne sont pas visibles dans la console Google Cloud. Utilisez la gcloud CLI pour afficher toutes les tâches.