Cloudflare Cron
Configure Cloudflare-triggered schedules for your crons.
Use Cloudflare Cron when Cloudflare should own schedule triggers for the app instead of an in-process scheduler.
Configure Cloudflare
nuxt.config.ts
export default defineNuxtConfig({
modules: ['@vitehub/cron/nuxt'],
cron: {
provider: 'cloudflare',
},
})
Define a scheduled cron
server/crons/daily-digest.ts
import { defineCron } from '@vitehub/cron'
export default defineCron(['0 12 * * 1'], async () => {
return { ok: true }
})
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.