Setting the file. One moment.
Chapter 04 · Cloudflare Deploy
Subchapter 4.71
references/cron-triggers/README.mdMarkdown3 KBView on GitHub
Schedule Workers execution using cron expressions. Runs on Cloudflare’s global network during underutilized periods.
┌─────────── minute (0-59)
│ ┌───────── hour (0-23)
│ │ ┌─────── day of month (1-31)
│ │ │ ┌───── month (1-12, JAN-DEC)
│ │ │ │ ┌─── day of week (1-7, SUN-SAT, 1=Sunday)
* * * * *Special chars: * (any), , (list), - (range), / (step), L (last), W (weekday), # (nth)
*/5 * * * * # Every 5 minutes
0 * * * * # Hourly
0 2 * * * # Daily 2am UTC (off-peak)
0 9 * * MON-FRI # Weekdays 9am UTC
0 0 1 * * # Monthly 1st midnight UTC
0 9 L * * # Last day of month 9am UTC
0 10 * * MON#2 # 2nd Monday 10am UTC
*/10 9-17 * * MON-FRI # Every 10min, 9am-5pm weekdayswrangler.jsonc:
{
"name": "my-cron-worker",
"triggers": {
"crons": ["*/5 * * * *", "0 2 * * *"]
}
}Handler:
export default {
async scheduled(
controller: ScheduledController,
env: Env,
ctx: ExecutionContext,
): Promise<void> {
console.log("Cron:", controller.cron);
console.log("Time:", new Date(controller.scheduledTime));
ctx.waitUntil(asyncTask(env)); // Non-blocking
},
};Test locally:
npx wrangler dev
curl "http://localhost:8787/__scheduled?cron=*/5+*+*+*+*"New to cron triggers? Start here:
Troubleshooting? Jump to gotchas.md