Une planification lance un workflow enregistré selon un calendrier, avec la même entrée et le même budget à chaque fois. Chaque lancement est une exécution ordinaire : enregistrée, facturée et détruite comme celles que vous lancez vous-même.
Une planification
Une planification désigne un workflow, un calendrier en syntaxe cron, un fuseau horaire, ainsi que l'entrée et le budget de chaque exécution. Par exemple, chaque jour ouvré à 09:00 à Tokyo, retrouver les nouveaux clients de la veille et envoyer à chacun un e-mail de bienvenue via une connexion :
{
"workflow": "welcome-new-customers",
"name": "Weekday welcome emails",
"cron": "0 9 * * 1-5",
"timezone": "Asia/Tokyo",
"input": { "signed_up": "yesterday" },
"max_cost_micros": 200000
}Le tableau de bord construit le calendrier pour vous, sous Planifications : toutes les quelques minutes, toutes les heures, chaque jour à une ou plusieurs heures, certains jours de la semaine ou du mois, ou n'importe quelle expression cron. Il affiche les prochains lancements avant que vous n'enregistriez.
Calendriers
Un calendrier comporte cinq champs : minute, heure, jour du mois, mois et jour de la semaine. Chacun accepte une valeur, une liste (1,15), un intervalle (1-5), un pas (*/15) ou *. Les raccourcis fonctionnent aussi.
| Calendrier | Lance |
|---|---|
*/ | Toutes les 15 minutes. |
0 * * * * | Toutes les heures pile. |
30 8,17 * * * | Chaque jour à 08:30 et à 17:30. |
0 9 * * 1-5 | Les jours ouvrés à 09:00. |
0 6 1 * * | Le premier de chaque mois à 06:00. |
@daily | Chaque jour à minuit. Également @hourly, @weekly et @monthly. |
@every 90m | Toutes les 90 minutes, à compter de l'enregistrement de la planification. |
Les heures sont interprétées dans le timezone de la planification, un nom IANA tel que Europe/Madrid : une planification à 09:00 reste donc à 09:00 lors des changements d'heure. Une planification se lance au plus une fois par minute.
Comment fonctionnent les lancements
- Ephemeral vérifie toutes les quelques secondes s'il y a des planifications à lancer et démarre chacune comme si vous aviez appelé
POST /v1/runsavec le workflow, l'entrée et le budget. L'exécution consigne la planification qui l'a lancée. - Chaque horaire de lancement n'est exécuté qu'une fois. Si Ephemeral était indisponible alors que des lancements étaient dus, la planification s'exécute une fois à son retour, puis reprend son calendrier.
- Par défaut, un lancement est ignoré tant que la précédente exécution de la planification est encore en cours, et la planification le consigne. Définissez
skip_if_runningsurfalsepour autoriser le chevauchement des exécutions. - Si un lancement échoue, par exemple parce que le workflow a été supprimé ou que les crédits sont insuffisants, la planification consigne le motif et réessaie à l'heure suivante. Après cinq échecs de lancement consécutifs, elle se met en pause ; la réactiver remet le compteur à zéro.
Suivre les exécutions planifiées
Les exécutions planifiées apparaissent avec vos autres exécutions et portent un schedule_id. Listez les exécutions d'une planification avec GET /v1/runs?schedule={id}. Les planifications n'envoient pas de callbacks ; pour réagir au résultat, faites-le dans le workflow via une connexion, ou interrogez régulièrement les exécutions de la planification.