Cloudflare Docs
Workers
Edit this page
Give us feedback
Set theme to dark (⇧+D)

Multiple Cron Triggers

Set multiple Cron Triggers on three different schedules.
export default {
async scheduled(event, env, ctx) {
// Write code for updating your API
switch (event.cron) {
case "*/3 * * * *":
// Every three minutes
await updateAPI();
break;
case "*/10 * * * *":
// Every ten minutes
await updateAPI2();
break;
case "*/45 * * * *":
// Every forty-five minutes
await updateAPI3();
break;
}
console.log("cron processed");
},
};
interface Env {}
export default {
async scheduled(controller: ScheduledController, env: Env, ctx: ExecutionContext) {
// Write code for updating your API
switch (controller.cron) {
case "*/3 * * * *":
// Every three minutes
await updateAPI();
break;
case "*/10 * * * *":
// Every ten minutes
await updateAPI2();
break;
case "*/45 * * * *":
// Every forty-five minutes
await updateAPI3();
break;
}
console.log("cron processed");
},
};

​​ Test Cron Triggers using Wrangler

The recommended way of testing Cron Triggers is using Wrangler.

Cron Triggers can be tested using Wrangler by passing in the --test-scheduled flag to wrangler dev. This will expose a /__scheduled route which can be used to test using a HTTP request. To simulate different cron patterns, a cron query parameter can be passed in.

$ npx wrangler dev --test-scheduled
$ curl "http://localhost:8787/__scheduled?cron=*%2F3+*+*+*+*"