# スケジュール実行

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

一定間隔または Cron で指定した時刻に本番実行を開始します。

Schedule は日次レポートや定期メンテナンスに使います。公開ノード型は `cron` です。

## 時刻を設定する

`config.schedule` に対応するルールを 1 つ以上指定します。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 に実行します。サーバーのローカル時刻に依存せず、意図したタイムゾーンを選択してください。スケジュール設定は静的で、これから始まる実行の出力は読めません。

Schedule が平日 UTC 09:00 に本番実行を開始し、固定のレポートメッセージを返します。

**入力**
Cron：0 9 * * 1-5、タイムゾーン：UTC。

**想定される結果**
{"message":"Daily report is ready"}

**実行前の準備**
スケジューラーが稼働する環境でフローを公開して有効化してください。

[ワークフローをダウンロード](https://openflow.run/docs/examples/daily-schedule.openflow.json)

## スケジュールを有効にする

フローを公開して有効化します。デプロイ先は進捗、予定回ごとの識別、キュー、復旧を担当します。ドラフトテストは入口をシミュレーションするだけで、本番スケジューラーの稼働は確認しません。

受け付けた予定回ごとに、現在の Live 定義で通常の実行が作成されます。無効化すると新規受付は止まりますが、受け付け済みの実行は取り消されません。

## 出力と失敗

実行メタデータの出力はトリガースキーマで確認してください。業務設定には Value や変数を使い、スケジュールのメタデータを任意の業務入力とみなさないでください。

対象となる本番の最終失敗は [Flow Error](https://openflow.run/ja/docs/nodes/error/index.md) で監視できます。Schedule 自体に通常のタスク再試行やエラー処理の設定はありません。

## 参照元

*   [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)
