Setting Cron Triggers
Set a Cron Trigger for your Worker.
export default { async scheduled(event, env, ctx) { console.log("cron processed"); },};
interface Env {}export default { async scheduled( controller: ScheduledController, env: Env, ctx: ExecutionContext, ) { console.log("cron processed"); },};
Refer to Cron Triggers for more information on how to add a Cron Trigger.
If you are deploying with Wrangler, set the cron syntax (once per hour as shown below) by adding this to your Wrangler file:
{ "name": "worker", "triggers": { "crons": [ "0 * * * *" ] }}
name = "worker"
# ...
[triggers]crons = ["0 * * * *"]
You also can set a different Cron Trigger for each environment in your Wrangler configuration file. You need to put the [triggers]
table under your chosen environment. For example:
{ "env": { "dev": { "triggers": { "crons": [ "0 * * * *" ] } } }}
[env.dev.triggers]crons = ["0 * * * *"]
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=0+*+*+*+*"