コンテンツにスキップ

スケジュールを確認する

定期実行トリガーの「次にいつ実行するか」は スケジュール として保存されます。グローバルメニューの「フロー」→「スケジュール」タブで、組織全体の実行予定とその結果を確認できます。フロー1つ分だけ見たいときは、フローエディタの「スケジュール」タブでも同じ一覧を確認できます。

アクティブなリビジョンに有効な定期実行トリガーがあると、スケジュールは自動で作られます。手動で作成・編集・削除することはできません。

項目 説明
フロー 実行されるフロー
識別コード どの定期実行トリガーの予定か(トリガーの識別コード)
実行予定日時 実行される予定の日時
実行日時 実際に実行した日時。実行予定日時より遅ければ遅れて実行された(補填された)
フロージョブ その実行で作られたフロージョブ(「詳細」から実行結果を確認できる)
実行されなかった理由 フロージョブを作らずに終えた場合の理由(意図的なスキップと失敗の両方)
まとめた件数 「まとめて1回実行」でまとめられた、または上限を超えて見送られた予定の件数
CRON 予定を作った時点の実行スケジュール

「実行日時」が空の行がこれからの予定です。1つの定期実行トリガーにつき常に1件で、実行されると実行日時が入り、次の予定が新しく作られます。

サーバーが止まっていた間の実行(補填)

Section titled “サーバーが止まっていた間の実行(補填)”

Synqlet のサーバーが停止していた時間帯に実行予定時刻が過ぎてしまった場合、復帰後にその分をどう扱うかをトリガーごとに選べます。設定はフローエディタのトリガー設定にあり、2つの独立した項目で決めます。

サーバー停止中に過ぎた実行(溜まった分をどれだけ実行するか)

Section titled “サーバー停止中に過ぎた実行(溜まった分をどれだけ実行するか)”
  • まとめて1回実行(既定) — 溜まっていた実行をまとめて 1回だけ 実行します。一覧の「まとめた件数」に、まとめられた予定の件数が記録されます。
  • 全件補填 — 溜まっていた実行を 1件ずつすべて 実行します。

毎分実行のような短い間隔のフローで長時間停止していた場合、「全件補填」では大量のフロージョブが一度に作られます。処理が重いフローや、最新のデータだけを見ればよいフローでは「まとめて1回実行」が向いています。逆に、1回でも取りこぼすと困る処理(連番の発行、日次の締め処理など)では「全件補填」を選びます。

遡って補填する上限(どこまで昔まで実行するか)

Section titled “遡って補填する上限(どこまで昔まで実行するか)”

現在時刻からこの時間より前の実行予定は行いません。分単位で指定します。

  • 空欄(既定) — 無制限。何日止まっていても、止まっていた間の分をすべて対象にします。
  • 0 — 遅れた分は実行しません。遅れて実行しても意味がない処理に向いています(「営業時間中だけ在庫を同期する」など)。
  • 数値 — その時間ぶんだけ遡ります。

上限を超えた分は1行にまとめて見送られ、「実行されなかった理由」が記録されます。見送った件数は「まとめた件数」に入ります。

たとえば 毎時実行・上限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 “スクリプトから予定時刻を使う”

スクリプトノードの第1引数には、定期実行トリガーから scheduledAt(この実行が受け持つ実行予定時刻)が渡されます。補填された実行では現在時刻より前の値になるので、「どの時刻ぶんの実行なのか」で処理を変えられます。→ スクリプトを書く