The documentation you are viewing is for Dapr v1.12 which is an older version of Dapr. For up-to-date documentation, see the latest version.
Cron binding spec
Component format
To setup cron binding create a component of type bindings.cron
. See this guide on how to create and apply a binding configuration.
apiVersion: dapr.io/v1alpha1
kind: Component
metadata:
name: <NAME>
spec:
type: bindings.cron
version: v1
metadata:
- name: schedule
value: "@every 15m" # valid cron schedule
- name: direction
value: "input"
Spec metadata fields
Field | Required | Binding support | Details | Example |
---|---|---|---|---|
schedule |
Y | Input | The valid cron schedule to use. See this for more details | "@every 15m" |
direction |
N | Input | The direction of the binding | "input" |
Schedule Format
The Dapr cron binding supports following formats:
Character | Descriptor | Acceptable values |
---|---|---|
1 | Second | 0 to 59, or * |
2 | Minute | 0 to 59, or * |
3 | Hour | 0 to 23, or * (UTC) |
4 | Day of the month | 1 to 31, or * |
5 | Month | 1 to 12, or * |
6 | Day of the week | 0 to 7 (where 0 and 7 represent Sunday), or * |
For example:
30 * * * * *
- every 30 seconds0 15 * * * *
- every 15 minutes0 30 3-6,20-23 * * *
- every hour on the half hour in the range 3-6am, 8-11pmCRON_TZ=America/New_York 0 30 04 * * *
- every day at 4:30am New York time
You can learn more about cron and the supported formats here
For ease of use, the Dapr cron binding also supports few shortcuts:
@every 15s
wheres
is seconds,m
minutes, andh
hours@daily
or@hourly
which runs at that period from the time the binding is initialized
Listen to the cron binding
After setting up the cron binding, all you need to do is listen on an endpoint that matches the name of your component. Assume the [NAME] is scheduled
. This will be made as a HTTP POST
request. The below example shows how a simple Node.js Express application can receive calls on the /scheduled
endpoint and write a message to the console.
app.post('/scheduled', async function(req, res){
console.log("scheduled endpoint called", req.body)
res.status(200).send()
});
When running this code, note that the /scheduled
endpoint is called every fifteen minutes by the Dapr sidecar.
Binding support
This component supports input binding interface.
Related links
- Basic schema for a Dapr component
- Bindings building block
- How-To: Trigger application with input binding
- How-To: Use bindings to interface with external resources
- Bindings API reference
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.