要设置 cron 绑定,需要创建一个类型为 bindings.cron
的组件。请参考本指南了解如何创建和应用绑定配置。
apiVersion: dapr.io/v1alpha1
kind: Component
metadata:
name: <NAME>
spec:
type: bindings.cron
version: v1
metadata:
- name: schedule
value: "@every 15m" # 有效的 cron 调度
- name: direction
value: "input"
字段 | 必需 | 绑定支持 | 详情 | 示例 |
---|---|---|---|---|
schedule | Y | 输入 | 使用的有效 cron 调度。详见此处 | "@every 15m" |
direction | N | 输入 | 绑定的方向 | "input" |
Dapr cron 绑定支持以下格式:
字符 | 描述 | 可接受的值 |
---|---|---|
1 | 秒 | 0 到 59,或 * |
2 | 分 | 0 到 59,或 * |
3 | 小时 | 0 到 23,或 * (UTC) |
4 | 月中的某天 | 1 到 31,或 * |
5 | 月 | 1 到 12,或 * |
6 | 星期几 | 0 到 7 (其中 0 和 7 代表星期日),或 * |
例如:
30 * * * * *
- 每 30 秒执行一次0 15 * * * *
- 每 15 分钟执行一次0 30 3-6,20-23 * * *
- 在凌晨 3 点到 6 点和晚上 8 点到 11 点之间,每小时的半点执行一次CRON_TZ=America/New_York 0 30 04 * * *
- 每天纽约时间凌晨 4:30 执行一次您可以在这里了解更多关于 cron 和支持的格式。
为了便于使用,Dapr cron 绑定还支持一些快捷方式:
@every 15s
其中 s
是秒,m
是分钟,h
是小时@daily
或 @hourly
从绑定初始化时开始按该周期运行设置 cron 绑定后,您只需监听与组件名称匹配的端点。假设 [NAME] 是 scheduled
。这将作为一个 HTTP POST
请求。下面的示例展示了一个简单的 Node.js Express 应用程序如何在 /scheduled
端点接收调用并向控制台写入消息。
app.post('/scheduled', async function(req, res){
console.log("scheduled endpoint called", req.body)
res.status(200).send()
});
运行此代码时,请注意 /scheduled
端点每十五分钟由 Dapr sidecar 调用。
此组件支持输入绑定接口。