Una programación inicia un flujo de trabajo guardado según un calendario, con la misma entrada y el mismo presupuesto cada vez. Cada inicio es una ejecución normal: se registra, se cobra y se destruye como una que iniciaras tú.
Una programación
Una programación indica un flujo de trabajo, un calendario con sintaxis cron y una zona horaria, y la entrada y el presupuesto de cada ejecución. Por ejemplo, cada día laborable a las 09:00 en Tokio, buscar los clientes nuevos de ayer y enviar a cada uno un correo de bienvenida a través de una conexión:
{
"workflow": "welcome-new-customers",
"name": "Weekday welcome emails",
"cron": "0 9 * * 1-5",
"timezone": "Asia/Tokyo",
"input": { "signed_up": "yesterday" },
"max_cost_micros": 200000
}El panel construye el calendario por ti, en Programaciones: cada pocos minutos, cada hora, a diario a una o más horas, en días de la semana o del mes elegidos, o cualquier expresión cron. Muestra las próximas horas de inicio antes de guardar.
Calendarios
Un calendario tiene cinco campos: minuto, hora, día del mes, mes y día de la semana. Cada uno admite un valor, una lista (1,15), un rango (1-5), un paso (*/15) o *. También se pueden usar abreviaturas.
| Calendario | Inicia |
|---|---|
*/ | Cada 15 minutos. |
0 * * * * | Cada hora, en punto. |
30 8,17 * * * | Cada día a las 08:30 y a las 17:30. |
0 9 * * 1-5 | Los días laborables a las 09:00. |
0 6 1 * * | El día uno de cada mes a las 06:00. |
@daily | Cada día a medianoche. También @hourly, @weekly y @monthly. |
@every 90m | Cada 90 minutos, contados desde que se guarda la programación. |
Las horas se interpretan en la timezone de la programación, un nombre IANA como Europe/Madrid, así que una programación a las 09:00 se mantiene a las 09:00 en los cambios de horario de verano. Las programaciones se inician como máximo una vez por minuto.
Cómo funcionan los inicios
- Ephemeral comprueba cada pocos segundos si hay programaciones pendientes e inicia cada una como si hubieras llamado a
POST /v1/runscon el flujo de trabajo, la entrada y el presupuesto. La ejecución registra qué programación la inició. - Cada hora de inicio se ejecuta una vez. Si Ephemeral no estaba disponible cuando tocaban inicios, la programación se ejecuta una vez al volver y después sigue su calendario.
- Por defecto, un inicio se omite mientras la ejecución anterior de la programación sigue en marcha, y la programación lo anota. Establece
skip_if_runningenfalsepara permitir que las ejecuciones se solapen. - Si un inicio falla, por ejemplo porque se eliminó el flujo de trabajo o no hay créditos suficientes, la programación registra el motivo y lo intenta de nuevo a la hora siguiente. Tras cinco inicios fallidos seguidos se pausa; volver a activarla reinicia el recuento.
Seguir las ejecuciones programadas
Las ejecuciones programadas aparecen junto con tus otras ejecuciones y llevan un schedule_id. Lista las ejecuciones de una programación con GET /v1/runs?schedule={id}. Las programaciones no envían callbacks; para actuar sobre el resultado, haz que el flujo de trabajo lo haga a través de una conexión, o consulta periódicamente las ejecuciones de la programación.