Cron
Un scheduler de background integrado. Cada job corre en su propio thread, sin bloquear.
-- Doc example: cron scheduler. Jobs run in the background; see the prose for cron_every.
-- Doctest just shows the registry starts empty (no jobs scheduled yet).
intent: "doc example: cron"
print("scheduled jobs: " + text(length(cron_list())))
test "the job registry starts empty"
assert_eq(length(cron_list()), 0)
Programar
task sync_inventory()
let data be http_get("https://api.warehouse.com/stock")
share data as "inventory"
cron_every(300, sync_inventory) -- cada 5 minutos
cron_after(3600, send_reminder) -- una vez, después de 1 hora
Gestionar
cron_cancel("sync_inventory") -- detener un job
let jobs be cron_list() -- listar todos los jobs
print(cron_status()) -- estado formateado
Mantener los jobs vivos
Bajo run, los jobs se detienen cuando el programa termina (son daemon threads). Usá synsema serve para mantener el proceso — y la programación — corriendo:
synsema serve scheduler.syn -- "Serving N cron job(s). Press Ctrl+C to stop."