Cloudflare Cron
Configure Cloudflare-triggered schedules for your crons.
Cloudflare Cron fits apps that already run on Cloudflare Workers and want the platform to trigger schedules. ViteHub discovers cron files and maps their schedules onto Cloudflare Cron Triggers instead of running an in-process scheduler.
Configure Cloudflare
nitro.config.ts
import { defineNitroConfig } from 'nitro/config'
export default defineNitroConfig({
modules: ['@vitehub/cron/nitro'],
cron: {
provider: 'cloudflare',
},
})
Define a scheduled cron
server/crons/daily-digest.ts
import { defineCron } from '@vitehub/cron'
export default defineCron(async () => {
return { ok: true }
}, {
schedules: ['0 12 * * 1'],
})
Keep schedules next to the cron file. Manual runs still use runCron(name, { payload?, context? }).
What changes on Cloudflare
| Concern | Behavior |
|---|---|
| Scheduler owner | Cloudflare owns the trigger. ViteHub does not start the in-process Node scheduler here. |
| Schedule format | Crons stay UTC-oriented. Use plain cron expressions. |
| Invalid fields | Node-only fields such as timezone, overlap, startAt, stopAt, and maxRuns are rejected when cron.provider = 'cloudflare'. |
Choose Cloudflare when you want platform-triggered schedules instead of an always-on Nitro process.