Stratégie de répétition de traitement

Stratégie de nouvelle tentative

Si une opération gsutil échoue pour l'une des raisons suivantes, vous devez prendre des mesures avant de réessayer:

  • Identifiants incorrects
  • Réseau inaccessible en raison d'un problème de configuration du proxy
  • Accès refusé, car le bucket ou l'objet que vous essayez d'utiliser possède une LCA qui n'autorise pas l'action que vous voulez effectuer
  • Opérations individuelles qui échouent dans une commande exécutant des opérations en parallèle (c'est-à-dire des commandes utilisant l'option de niveau supérieur -m)

gsutil effectue une nouvelle tentative pour les erreurs suivantes, sans aucune action supplémentaire de votre part:

  • Échecs temporaires du réseau
  • Codes d'erreur HTTP 429 et 5xx
  • Codes d'erreur HTTP 408 lors d'une importation avec reprise

Pour les erreurs permettant des nouvelles tentatives, gsutil relance les requêtes à l'aide d'une stratégie d'intervalle exponentiel tronqué entre les tentatives:

  • Attendez entre [0..1] seconde, puis effectuez une nouvelle tentative.
  • Si cette opération échoue, attendez entre [0..2] secondes, puis effectuez une nouvelle tentative.
  • Si cette opération échoue, attendez entre [0..4] secondes, puis effectuez une nouvelle tentative.
  • Poursuivez ainsi jusqu'à atteindre le nombre maximal de nouvelles tentatives (23 par défaut).

Chaque période de répétition est limitée par une période maximale configurable (60 secondes par défaut).

Ainsi, par défaut, gsutil effectuera 23 nouvelles tentatives sur une période de 1 + 2 + 4 + 8 + 16 + 32 + 60... secondes pendant environ 10 minutes. Vous pouvez ajuster le nombre de nouvelles tentatives et le délai maximal de chacune d'elles en modifiant les variables de configuration num_retries et max_retry_delay dans la section "[Boto]" du fichier de configuration .boto. Dans la plupart des cas, vous ne devriez pas avoir besoin de modifier ces valeurs.

Pour les transferts de données (commandes gsutil cp et rsync), gsutil fournit une autre fonctionnalité de nouvelle tentative, sous la forme de transferts avec reprise. En résumé, un transfert interrompu en raison d'une erreur temporaire peut être relancé sans tout recommencer à zéro. Pour en savoir plus à ce sujet, consultez la section "Transferts avec reprise" sur la page consacrée à gsutil help cp.

Pour plus d'informations sur la manière dont les autres outils Cloud Storage gèrent la stratégie de répétition, consultez la section Stratégie de répétition.