type: service
status: active
timestamp: 2026-06-20
tags: [cron, cloudflare, workers, primary]

Cloudflare Cron Triggers

In-Worker scheduled jobs — sub-second invocation, free unlimited

Cloudflare Cron Triggers

Role

Runs scheduled jobs inside the Hono Worker at api.oriz.in (and on any other family Worker). Jobs trigger via a scheduled() handler in the Worker module — same runtime, same bindings (KV, R2, D1, Service Bindings), same observability.

Free tier

Card / subscription required?

NO. Same Cloudflare account as Pages / Workers / DNS / R2; no payment method needed.

What we run on it

JobCadenceWhy CF Cron
RSS feed poll inside oriz-omnipost Worker (when migrated from GH Actions)every 5 minSub-minute trigger; reads R2 / KV directly
Cache rebuild for site indexesevery 15 minTouches Worker KV; no git involvement
Idempotency-table sweep (Razorpay webhook dedupe)hourlyWorker reads its own KV
Heartbeat ping to healthchecks.io for “Worker is up”every 5 minFires from inside the Worker — proves the Worker can both schedule and fetch

Anything that needs pnpm, wrangler deploy, or a repo checkout goes to GitHub Actions schedule instead — see the cron split decision.

Alternatives

Swap cost

Low — the scheduled() handler is ~10 lines of TS. Swapping out means moving the same job into another runtime.

Why this is our pick

For jobs that live in the Worker runtime, this is the lowest-latency

Cross-refs


Edit on GitHub · Back to index