kazzle.config.ts 中的 process 组件上声明它们。一个组件可以包含任意数量的触发器。
结构
processMode选择生命周期——长期运行的服务器,或每个触发器运行一次。triggers[]列出应该触发此组件的事件。
processMode
触发器
每个触发器有一个name(在组件内唯一)、一个 kind,以及——取决于模式——一个 schedule 和/或 path。
持久模式——HTTP 到服务器
当持久组件的触发器触发时,Kazzle 在声明的path 处 POST 到你的服务器。请求包含:
对于 webhook 触发器,原始请求体作为 POST 体转发。对于计划触发器,体为空。
触发模式——每个触发器一次性
当triggered 组件的触发器触发时,Kazzle 生成入口脚本并等待它退出。没有 path;脚本从环境变量了解哪个触发器触发。
Webhook URL
triggerName 段必须与该组件 triggers[] 中的 kind: 'webhook' 条目匹配。未知的触发器名称返回 404。
计划分辨率
Cron 表达式是 5 字段(分钟、小时、月份日期、月份、周几),分钟分辨率是最小单位。子分钟计划在清单验证时被拒绝。运行如何被记录
每个触发器触发写入一个process_runs 行,包含 trigger_name、triggered_by、run_id 和运行的退出状态。你可以从自己的代码查询这些,或在应用的运行视图中检查它们。
信用不足
失败的运行被记录和记录,但计划按其正常节奏继续运行——不稳定的运行永远不会禁用触发器。停止运行的唯一因素是信用:每个触发器触发都会针对空间的余额进行检查,当空间信用不足(或未设置计费)时,运行会被跳过并返回402。这是自我恢复的——计划保持启用,充值后的下一次触发正常运行,无需手动恢复。
稍后添加自动化
简单的应用可以不带触发器开始,稍后获得它们——添加每日摘要、连接 Stripe、运行清理。组件的生命周期(processMode)和触发器(triggers[])是独立的,所以你可以更改它们而无需重写应用的其余部分。