La classe RetryParams

La classe RetryParams est fournie par la bibliothèque cliente App Engine pour Cloud Storage dans src/cloudstorage. Elle permet de modifier les paramètres par défaut liés au traitement du délai d'expiration et des nouvelles tentatives.

Introduction

La bibliothèque cliente App Engine pour Cloud Storage utilise les paramètres par défaut définis pour le traitement du délai d'expiration et des nouvelles tentatives lorsque vous essayez de contacter les serveurs Cloud Storage. Cette classe vous permet de modifier ces paramètres à l'échelle de l'application ou pour un appel spécifique d'une fonction de la bibliothèque (copy2, delete, listbucket, open, stat). Vous n'avez besoin de modifier que le paramètre qui vous intéresse, car les autres paramètres sont conservés, sauf s'ils sont explicitement écrasés. Chaque instance RetryParams est unique pour chaque thread et chaque requête.

Pour modifier un paramètre par défaut à l'échelle de l'application, vous devez créer un objet RetryParams, spécifier les paramètres à modifier et fournir cet objet à la fonction cloudstorage.set_default_retry_params() comme décrit ci-dessous :

my_default_retry_params = cloudstorage.RetryParams(initial_delay=0.2,
                                      max_delay=5.0,
                                      backoff_factor=2,
                                      max_retry_period=15)
cloudstorage.set_default_retry_params(my_default_retry_params)

Si vous souhaitez uniquement modifier les paramètres par défaut d'un appel de fonction spécifique, créez un objet RetryParams et fournissez-le directement à la fonction dans son paramètre retry_params, comme suit :

write_retry_params = cloudstorage.RetryParams(backoff_factor=1.1)
gcs_file = cloudstorage.open(filename,
                    'w',
                    content_type='text/plain',
                    options={'x-goog-meta-foo': 'foo',
                             'x-goog-meta-bar': 'bar'},
                    retry_params=write_retry_params)

Cela n'a aucun effet sur les paramètres par défaut utilisés par l'application ou par d'autres appels de fonctions.

Propriétés de l'instance

Une instance RetryParams possède les propriétés suivantes :

initial_delay
Nombre de secondes d'attente avant d'effectuer une nouvelle tentative. La valeur par défaut est 0.1. Le délai permet de répartir la charge sur le serveur Google Cloud Storage.
backoff_factor
Multiplicateur d'intervalle exponentiel entre les tentatives. Il permet de déterminer le taux de traitement optimal. La valeur par défaut est 2.0. Pour découvrir comment définir cette valeur et obtenir des conseils, consultez la documentation de Google Cloud Storage sur l'intervalle entre les tentatives.
max_delay
Nombre maximal de secondes d'attente entre les nouvelles tentatives. La valeur par défaut est 10.0.
min_retries
Nombre minimal de nouvelles tentatives à effectuer. La valeur par défaut est 3.
max_retries
Nombre maximal de nouvelles tentatives à effectuer. Définissez cette valeur sur 0 si vous ne souhaitez pas effectuer de nouvelles tentatives. La valeur par défaut est 6.
max_retry_period
Nombre maximal de secondes pouvant être consacrées à l'ensemble des nouvelles tentatives d'une requête donnée. La valeur par défaut est 30.0. Le système n'effectue plus de nouvelles tentatives lorsque cette période est écoulée ET que le nombre de tentatives défini par min_retries a été effectué.
urlfetch_timeout
Nombre de secondes d'attente avant que le service de récupération d'URL ne renvoie une erreur d'expiration du délai lorsqu'il contacte les serveurs Google Cloud Storage. Par défaut, ce paramètre est défini sur None, ce qui signifie que le délai par défaut du service de récupération d'URL (qui est de cinq secondes) s'applique. Cette valeur ne peut pas dépasser 60 secondes.