# 排程

Source: https://openflow.run/zh-tw/docs/nodes/cron/
Language: zh-TW
Product version: 0.1.0-beta.77

按固定間隔或 Cron 時間啟動正式環境執行。

定時觸發節點適合每日報表、定期維護等重複任務，公開節點型別為 `cron`。

## 設定時間

在 `config.schedule` 中填寫一條或多條受支援的排程規則。Cron 表示式需要明確指定時區，間隔規則使用數值和單位。

```json
{
  "op": "node.add", "as": "daily", "type": "cron", "name": "Weekday report",
  "config": {
    "schedule": [ { "type": "cron", "expression": "0 9 * * 1-5", "timezone": "UTC" } ]
  }
}
```

該設定會在工作日 UTC 09:00 執行。應明確選擇業務所需的時區，不依賴伺服器本機時間。排程設定是靜態的，不能讀取它即將啟動的執行中的輸出。

定時觸發器在工作日 UTC 09:00 啟動正式環境執行，回傳固定的報告訊息。

**輸入**
Cron：0 9 * * 1-5；時區：UTC。

**預期結果**
{"message":"Daily report is ready"}

**執行前準備**
在執行了排程器的部署環境中，發布並啟用工作流程。

[下載工作流程](https://openflow.run/docs/examples/daily-schedule.openflow.json)

## 啟用排程

發布並啟用工作流程。部署端負責排程進度、每次觸發的識別碼、排隊和恢復。草稿測試只模擬入口，不能證明正式環境排程器已在執行。

每個被接受的定時觸發都會根據目前 Live 定義建立一次一般執行。停用工作流程會阻止新的執行，不會取消此前已經接收的執行。

## 輸出與失敗

觸發器的執行後設資料輸出，以節點結構說明為準。業務設定應透過固定值節點或變數提供，不應將排程後設資料當作任意業務輸入。

可以用[工作流程錯誤觸發器](https://openflow.run/zh-tw/docs/nodes/error/index.md)監測符合條件的正式環境執行最終失敗。定時觸發節點本身沒有一般任務重試或節點錯誤處理設定。

## 資料來源

*   [docs/control/contracts/control-api.md](https://github.com/oomol-lab/open-flow/blob/e25a738d170322734572a0b8a1323cb00b9d355a/docs/control/contracts/control-api.md#trigger-configuration-and-outputs)
*   [docs/architecture.md](https://github.com/oomol-lab/open-flow/blob/e25a738d170322734572a0b8a1323cb00b9d355a/docs/architecture.md#publication-and-trigger)
*   [packages/open-flow/src/workbench/browser/runtime/editor/addNodeOptions.ts](https://github.com/oomol-lab/open-flow/blob/e25a738d170322734572a0b8a1323cb00b9d355a/packages/open-flow/src/workbench/browser/runtime/editor/addNodeOptions.ts)
