Lorsque vous créez une tâche, vous pouvez spécifier le nombre maximal de tentatives pour une tâche ayant échoué, définir un délai pour les tentatives et contrôler l'intervalle entre les tentatives à l'aide de la méthode projects.locations.queues.tasks.create. Une fois une tâche exécutée, elle est supprimée de la file d'attente. Dans tous les cas, la limite de conservation maximale des tâches s'applique également.
Cette configuration des nouvelles tentatives au niveau de la tâche remplace la configuration des nouvelles tentatives au niveau de la file d'attente pour la tâche.
Configurer les nouvelles tentatives lors de la création d'une tâche
L'exemple suivant montre comment définir des paramètres de nouvelle tentative lors de la création d'une tâche cible HTTP en envoyant une requête directe à l'API Cloud Tasks. Vous pouvez utiliser les mêmes paramètres de nouvelle tentative lorsque vous créez une tâche App Engine. Pour en savoir plus sur les paramètres, consultez les paramètres RetryConfig de la ressource Task.
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
PROJECT_ID: Obligatoire. ID du projet Google Cloud dans lequel la tâche sera créée.REGION: Obligatoire. La région dans laquelle la file d'attente est déployée (par exemple,us-central1).QUEUE_ID: Obligatoire. ID de la file d'attente à laquelle la tâche sera ajoutée.URL: Obligatoire. URL complète à laquelle la requête sera envoyée. Cette chaîne doit commencer parhttp://ouhttps://, par exemplehttps://www.example.com.SERVICE_ACCOUNT_EMAIL: facultatif. Adresse e-mail du compte de service utilisé pour générer un jeton d'autorisation inclus dans la requête envoyée à la cible lors de l'exécution de la tâche. Le compte de service doit se trouver dans le même projet que la file d'attente. L'appelant doit disposer de l'autorisationiam.serviceAccounts.actAspour le compte de service.Pour générer un jeton d'accès OAuth2 au lieu d'un jeton OpenID Connect, remplacez le champ
oidcTokenparoauthTokenpour spécifier l'adresse e-mail du compte de service.MAX_ATTEMPTS(facultatif) : Nombre maximal de tentatives pour une tâche, y compris la première. Pour autoriser un nombre illimité de tentatives, définissez cette valeur sur-1.MAX_RETRY_DURATIONs'applique toujours même siMAX_ATTEMPTSest atteint ou défini sur-1.MAX_RETRY_DURATION(facultatif) : Délai maximal d'une nouvelle tentative d'exécution d'une tâche ayant échoué, mesuré à partir de la première tentative d'exécution de la tâche. La valeur doit être une chaîne qui se termine par "s", telle que5s. Pour spécifier une durée illimitée, définissez cette valeur sur0s.MAX_ATTEMPTSs'applique toujours même siMAX_RETRY_DURATIONest atteint ou défini sur0s.MIN_INTERVAL(facultatif) : Délai minimal d'attente entre les tentatives. La valeur doit être une chaîne se terminant par "s", par exemple5s.MAX_INTERVAL(facultatif) : Durée maximale d'attente entre les tentatives. La valeur doit être une chaîne se terminant par "s", par exemple5s.MAX_DOUBLINGS(facultatif) : Nombre maximal de fois où l'intervalle entre les tentatives d'exécution de tâches ayant échoué est doublé avant que l'augmentation ne devienne constante. L'intervalle de nouvelle tentative d'une tâche commence àMIN_INTERVAL, puis doubleMAX_DOUBLINGSfois, puis augmente de manière linéaire, et enfin effectue de nouvelles tentatives à des intervalles deMAX_INTERVALjusqu'àMAX_ATTEMPTSfois.Par exemple, si
MIN_INTERVALest10s,MAX_INTERVALest300setMAX_DOUBLINGSest3, l'intervalle de relance sera doublé3fois, augmentera de manière linéaire de 2^3 * 10 s, puis sera relancé à des intervalles deMAX_INTERVALjusqu'à ce que la tâche ait été tentéeMAX_ATTEMPTSfois : 10 s, 20 s, 40 s, 80 s, 160 s, 240 s, 300 s, 300 s, etc.SCHEDULE_TIME(facultatif) : Heure à laquelle la tâche doit être tentée, au format RFC 3339 (par exemple,2026-10-02T15:01:23Z). Si l'heure n'est pas définie ou est passée, Cloud Tasks la définit sur l'heure actuelle.
Corps JSON de la requête :
{
"task": {
"httpRequest": {
"url": "URL",
"httpMethod": "POST",
"oidcToken": {
"serviceAccountEmail": "SERVICE_ACCOUNT_EMAIL"
}
},
"retryConfig": {
"maxAttempts": MAX_ATTEMPTS,
"maxRetryDuration": "MAX_RETRY_DURATION",
"minBackoff": "MIN_INTERVAL",
"maxBackoff": "MAX_INTERVAL",
"maxDoublings": MAX_DOUBLINGS
},
"scheduleTime": "SCHEDULE_TIME"
}
}
Pour envoyer votre requête, développez l'une des options suivantes :
Si la requête aboutit, le corps de la réponse contient l'instance nouvellement créée de la ressource Task.
{
"name": "projects/PROJECT_ID/locations/REGION/queues/QUEUE_ID/tasks/TASK_ID",
"httpRequest": {
"url": "URL",
"httpMethod": "POST",
"headers": {
"User-Agent": "Google-Cloud-Tasks"
},
"oidcToken": {
"serviceAccountEmail": "SERVICE_ACCOUNT_EMAIL",
"audience": "URL"
}
},
"retryConfig": {
"maxAttempts": MAX_ATTEMPTS,
"maxRetryDuration": "MAX_RETRY_DURATION",
"minBackoff": "MIN_INTERVAL",
"maxBackoff": "MAX_INTERVAL",
"maxDoublings": MAX_DOUBLINGS
},
"scheduleTime": "SCHEDULE_TIME",
"createTime": "2026-04-30T19:11:50Z",
"dispatchDeadline": "600s",
"view": "BASIC"
}
Étapes suivantes
- Créer des files d'attente Cloud Tasks
- Créer des tâches Cloud Tasks
- Configurer le routage, les limites et les nouvelles tentatives des files d'attente
- Gérer les files d'attente et les tâches