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

ConcernBehavior
Scheduler ownerCloudflare owns the trigger. ViteHub does not start the in-process Node scheduler here.
Schedule formatCrons stay UTC-oriented. Use plain cron expressions.
Invalid fieldsNode-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.