kazzle.config.ts 的 process 元件上宣告它們。一個元件可以包含任意數量的觸發器。
結構
processMode選擇生命週期 — 長期執行的伺服器,或每個觸發器執行一次。triggers[]列出應該觸發此元件的事件。
processMode
觸發器
每個觸發器都有一個name(在元件內唯一)、一個 kind,以及 — 根據模式 — 一個 schedule 和/或 path。
持久模式 — HTTP 進入伺服器
當持久元件的觸發器觸發時,Kazzle 會 POST 到您在宣告的path 上的伺服器。請求包含:
對於 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[])是獨立的,因此您可以在不重寫應用程式其餘部分的情況下變更它們。