Synsema docsENES

Cron

Un scheduler de background integrado. Cada job corre en su propio thread, sin bloquear.

cron.syn
-- 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."