Relance automatique
Cette capacité relance une tâche qui a échoué, seule, au lieu de la laisser tomber au premier raté. Un service momentanément indisponible, un réseau qui hésite : souvent, réessayer un peu plus tard suffit. Vous fixez le nombre de tentatives et l’attente entre chacune ; le KIT applique cette patience à votre place.
Un raté n’est pas toujours un échec
Beaucoup d’erreurs sont passagères : un service occupé une seconde, une connexion qui saute, une réponse qui tarde. Abandonner au premier raté, c’est perdre une tâche qui aurait abouti à la deuxième tentative. La relance automatique introduit cette nuance : au lieu de déclarer forfait tout de suite, elle patiente et réessaie. La plupart des incidents temporaires se résolvent d’eux-mêmes dans ce laps de temps, et la tâche finit par passer sans que vous ayez à vous en apercevoir ni à intervenir.
Attendre de plus en plus longtemps
Réessayer aussitôt, en rafale, n’aide pas si le service d’en face est débordé : cela l’accable davantage. La bonne pratique est d’espacer les tentatives de plus en plus — quelques secondes, puis davantage, puis plus encore. Ce délai croissant laisse le temps à l’autre bout de se rétablir avant la relance suivante. Vous fixez le nombre maximal de tentatives et le rythme de cet espacement, pour trouver l’équilibre entre insister assez et ne pas s’acharner indéfiniment sur une tâche qui, elle, est vraiment perdue.
Savoir quand renoncer
La relance a une fin : passé le nombre de tentatives que vous avez fixé, la tâche est déclarée en échec pour de bon et vous en êtes informé. Cette limite évite les boucles sans fin et vous signale les vrais problèmes, ceux qui demandent une intervention. La relance automatique s’ajoute aux autres capacités — elle protège une étape d’un enchaînement, un appel de webhook, une tâche programmée. La configuration se fait depuis cette page ou via l’API.
Cas d’usage
Fiabiliser un appel vers un service tiers
Quand un webhook d’Atelier Garnier SARL vise un service momentanément injoignable, la relance le retente après un court délai, et l’appel finit par passer.
Sécuriser une étape d’un circuit
Studio Lumen SAS protège l’étape la plus fragile d’un enchaînement : en cas de raté passager, elle est retentée avant que toute la chaîne ne soit déclarée en échec.
Encaisser une indisponibilité nocturne
Une tâche programmée de Menuiserie Rousseau & Fils qui tombe pendant une maintenance est reprise automatiquement un peu plus tard, sans attendre le lendemain.
Questions fréquentes
Pourquoi espacer les tentatives au lieu de réessayer tout de suite ?
Réessayer en rafale sur un service déjà surchargé aggrave la situation. Un délai croissant lui laisse le temps de se rétablir entre deux tentatives, ce qui rend la relance à la fois plus efficace et plus respectueuse de l’autre bout.
Combien de fois une tâche est-elle retentée ?
Autant de fois que vous le décidez : vous fixez le nombre maximal de tentatives. Au-delà, la tâche est déclarée en échec définitif et vous en êtes averti, ce qui évite les relances sans fin sur un problème réel.
Toutes les erreurs justifient-elles une relance ?
Non. Une indisponibilité passagère mérite une nouvelle tentative ; une donnée mal formée échouera autant de fois qu’on la relancera. La relance est faite pour les incidents temporaires, pas pour corriger une entrée fautive.
Comment sont facturées les tentatives ?
Chaque nouvelle tentative coûte $0.002, en dollars US, à quoi s’ajoute le prix de l’opération relancée. Une tâche qui passe du premier coup ne déclenche aucune relance, donc aucun surcoût de ce type.
Suis-je prévenu quand la relance abandonne ?
Oui. Une fois le nombre de tentatives épuisé, l’échec définitif est signalé et peut déclencher une notification, pour que vous interveniez sur les cas qui ne se résolvent pas d’eux-mêmes.
La relance fonctionne-t-elle avec n’importe quelle tâche ?
Elle s’applique aux opérations susceptibles d’échouer de façon passagère — un appel réseau, une étape d’enchaînement, une exécution programmée. Elle enveloppe la tâche existante sans en changer le fonctionnement, seulement sa résistance aux ratés.
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/flow/retry \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"input":"…"}'const res = await fetch("https://api.kit.forhosting.com/flow/retry", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"input": "…"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/flow/retry",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"input": "…"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/flow/retry", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"input":"…"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"input":"…"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/flow/retry", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"input": "…"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "flow.retry",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |