Skip to main content

Configuración

Define schedules cron directamente en el config de tu función. No necesitas configuración externa.
index.ts

Prueba local

Inicia el servidor con jelou functions dev. Puedes enviar una petición HTTP a la función, pero el guard isCron la rechazará porque no es un trigger cron real:
No puedes simular un trigger cron real desde curl — la plataforma inyecta ctx.isCron y la firma criptográfica automáticamente. Para probar la lógica del cron, usa createMockContext({ isCron: true }) en tus tests.

Sintaxis

Cada schedule tiene dos campos:

Formato de expresión

Ejemplos comunes

Zonas horarias

Usa cualquier zona IANA válida:

Name y botId

Usa name para identificar cada schedule y botId para hidratar ctx.bot con un bot específico:

Guard isCron

Tu función puede recibir tanto peticiones HTTP como disparos cron. Usa ctx.isCron para distinguirlos:
Sin el guard isCron, cualquier petición HTTP a tu función ejecutará la lógica del cron. Siempre incluye esta verificación.

Cómo funciona

  1. Defines los schedules en config.cron
  2. Al ejecutar jelou functions deploy, la plataforma lee tu configuración y crea los schedules
  3. Cuando un schedule se dispara, tu función recibe una petición con ctx.isCron === true y ctx.trigger.cron con la expresión que lo activó
  4. La verificación de firma criptográfica previene invocaciones no autorizadas

Límites

  • Máximo 10 schedules cron por función
  • Exceder este límite lanza un error en tiempo de definición

Gestión

Los schedules son declarativos — se definen en el código y se sincronizan en cada despliegue. Para modificar un schedule, cambia config.cron en tu código y vuelve a desplegar. Para ver los schedules activos:

Multi-tool cron

Cuando usas app(), cada tool puede tener sus propios schedules cron independientes. Las peticiones cron se envían a la ruta específica de cada tool.
El límite de 10 schedules cron es agregado entre todos los tools de un app(). Si un tool usa 6 schedules, los demás tools solo pueden usar 4 en total.

Logs de ejecución

Consulta el historial de ejecuciones cron:
Filtra por estado:
Estados posibles: DELIVERED, ERROR, RETRY, RETRY_SCHEDULED, FAILED.

Problemas comunes

Los schedules cron se sincronizan al hacer deploy. Si cambiaste la expresión cron, necesitas redesplegar:
Verifica que el schedule esté activo:
Si la columna Enabled muestra no, revisa que la expresión cron sea válida.
Consulta la guía completa de multi-tool para más detalles sobre app().