スケジュールを確認する
定期実行トリガーの「次にいつ実行するか」は スケジュール として保存されます。グローバルメニューの「フロー」→「スケジュール」タブで、組織全体の実行予定とその結果を確認できます。フロー1つ分だけ見たいときは、フローエディタの「スケジュール」タブでも同じ一覧を確認できます。
アクティブなリビジョンに有効な定期実行トリガーがあると、スケジュールは自動で作られます。手動で作成・編集・削除することはできません。
| 項目 | 説明 |
|---|---|
| フロー | 実行されるフロー |
| 識別コード | どの定期実行トリガーの予定か(トリガーの識別コード) |
| 実行予定日時 | 実行される予定の日時 |
| 実行日時 | 実際に実行した日時。実行予定日時より遅ければ遅れて実行された(補填された) |
| フロージョブ | その実行で作られたフロージョブ(「詳細」から実行結果を確認できる) |
| 実行されなかった理由 | フロージョブを作らずに終えた場合の理由(意図的なスキップと失敗の両方) |
| まとめた件数 | 「まとめて1回実行」でまとめられた、または上限を超えて見送られた予定の件数 |
| CRON | 予定を作った時点の実行スケジュール |
「実行日時」が空の行がこれからの予定です。1つの定期実行トリガーにつき常に1件で、実行されると実行日時が入り、次の予定が新しく作られます。
サーバーが止まっていた間の実行(補填)
Section titled “サーバーが止まっていた間の実行(補填)”Synqlet のサーバーが停止していた時間帯に実行予定時刻が過ぎてしまった場合、復帰後にその分をどう扱うかをトリガーごとに選べます。設定はフローエディタのトリガー設定にあり、2つの独立した項目で決めます。
サーバー停止中に過ぎた実行(溜まった分をどれだけ実行するか)
Section titled “サーバー停止中に過ぎた実行(溜まった分をどれだけ実行するか)”- まとめて1回実行(既定) — 溜まっていた実行をまとめて 1回だけ 実行します。一覧の「まとめた件数」に、まとめられた予定の件数が記録されます。
- 全件補填 — 溜まっていた実行を 1件ずつすべて 実行します。
毎分実行のような短い間隔のフローで長時間停止していた場合、「全件補填」では大量のフロージョブが一度に作られます。処理が重いフローや、最新のデータだけを見ればよいフローでは「まとめて1回実行」が向いています。逆に、1回でも取りこぼすと困る処理(連番の発行、日次の締め処理など)では「全件補填」を選びます。
遡って補填する上限(どこまで昔まで実行するか)
Section titled “遡って補填する上限(どこまで昔まで実行するか)”現在時刻からこの時間より前の実行予定は行いません。分単位で指定します。
- 空欄(既定) — 無制限。何日止まっていても、止まっていた間の分をすべて対象にします。
- 0 — 遅れた分は実行しません。遅れて実行しても意味がない処理に向いています(「営業時間中だけ在庫を同期する」など)。
- 数値 — その時間ぶんだけ遡ります。
上限を超えた分は1行にまとめて見送られ、「実行されなかった理由」が記録されます。見送った件数は「まとめた件数」に入ります。
2つの組み合わせ
Section titled “2つの組み合わせ”たとえば 毎時実行・上限2時間 のフローが 15:30 に停止し、18:30 に復帰した場合(実行待ちは 16:00 の分):
| 溜まった分をどれだけ実行するか | 結果 |
|---|---|
| まとめて1回実行 | 16:00 の分を見送り、17:00〜18:00 の分を1回だけ実行 |
| 全件補填 | 16:00 の分を見送り、17:00 と 18:00 の分を1件ずつ実行 |
上限を 0 にすればどちらのポリシーでも何も実行せず、19:00 の分から再開します。
設定の変更は、その時点で実行待ちの予定にも反映されます。
実行されなかった場合
Section titled “実行されなかった場合”フローを開始できなかった場合は、「実行日時」は入るものの「フロージョブ」が空になり、「実行されなかった理由」に原因が記録されます。この予定は自動で再実行されません。
「実行されなかった理由」には、「遡って補填する上限」を超えたことによる意図的な見送りも記録されます。設定どおりの動作なので対処は不要です。
よくある原因は、リビジョンを公開した人が組織のメンバーから外れているケースです。定期実行は公開した人の権限で動くため、その人が組織にいなくなるとフローを開始できず、以降の実行も同じ理由で失敗し続けます。在籍しているメンバーがリビジョンを公開し直すと復旧します。
なお、リビジョンを非アクティブにする・トリガーを無効にする・フローを削除するなどでトリガーが無くなった場合は、エラーにはならず、実行待ちの予定が一覧から削除されます。
スクリプトから予定時刻を使う
Section titled “スクリプトから予定時刻を使う”スクリプトノードの第1引数には、定期実行トリガーから scheduledAt(この実行が受け持つ実行予定時刻)が渡されます。補填された実行では現在時刻より前の値になるので、「どの時刻ぶんの実行なのか」で処理を変えられます。→ スクリプトを書く