メインコンテンツへスキップ

概要

Jinba Flowでは、cron式を使用して、指定された時刻にワークフローを自動実行するスケジュールを設定できます。スケジュールされたワークフローは公開バージョンを実行するため、自動化タスク、定期的なデータ処理、スケジュールされたレポートに最適です。

スケジューリングとは?

スケジューリングにより、ワークフローの自動実行が可能になります:
  • 自動実行: ワークフローがスケジュールに基づいて自動的に実行されます
  • Cron式: 標準のcron構文を使用して実行時刻を定義
  • 公開バージョン: スケジュールされたワークフローは常に公開バージョンを使用します
  • タイムゾーンサポート: 正確なスケジューリングのためにタイムゾーンを指定

前提条件

ワークフローをスケジュールするには:
  1. 公開されたワークフロー: ワークフローが公開されている必要があります(公開を参照)
  2. スケジュール権限: ワークスペースでワークフローをスケジュールする権限が必要です
  3. Cron式: ワークフローを実行する時刻を定義

スケジュールの設定

ステップ1: ワークフロー設定を開く

  1. フローエディタで公開されたワークフローを開く
  2. 実行または設定セクションに移動
  3. スケジュールセクションを見つける

ステップ2: スケジュールを有効化

  1. スケジュールを有効化スイッチをONに切り替え
  2. スケジュール設定フォームが表示されます

ステップ3: スケジュールを設定

  1. cron式を入力するか、ビジュアルスケジュールビルダーを使用
  2. オプションでタイムゾーンを指定
  3. スケジュールの説明を確認(例:「毎日午前0時」)
  4. スケジュールを保存

ステップ4: スケジュールを確認

  1. スケジュールがアクティブであることを確認
  2. 次のスケジュール実行時刻を表示
  3. 実行履歴でスケジュールされた実行を監視

Cron式

基本的なCron構文

Cron式は5つのフィールドで構成されます:
┌───────────── 分 (0 - 59)
│ ┌───────────── 時 (0 - 23)
│ │ ┌───────────── 日 (1 - 31)
│ │ │ ┌───────────── 月 (1 - 12)
│ │ │ │ ┌───────────── 曜日 (0 - 6) (日曜日から土曜日)
│ │ │ │ │
* * * * *

一般的なCronの例

毎分

* * * * *

毎時

0 * * * *

毎日午前0時

0 0 * * *

毎日正午

0 12 * * *

毎週月曜日午前9時

0 9 * * 1

毎月1日午前0時

0 0 1 * *

15分ごと

*/15 * * * *

毎日午前2時30分

30 2 * * *

平日午前9時

0 9 * * 1-5

四半期の最初の日午前0時

0 0 1 */3 *

タイムゾーンサポート

タイムゾーンの指定

CRON_TZプレフィックスを使用してタイムゾーンを指定できます:
CRON_TZ=America/New_York 0 9 * * *
これは毎日東部時間の午前9時にワークフローを実行します。

一般的なタイムゾーン

  • UTC: 協定世界時
  • America/New_York: 東部時間
  • America/Chicago: 中部時間
  • America/Los_Angeles: 太平洋時間
  • Europe/London: グリニッジ標準時
  • Asia/Tokyo: 日本標準時
  • Australia/Sydney: オーストラリア東部時間
注意: タイムゾーンが指定されていない場合、スケジュールはUTCを使用します。

スケジュール管理

スケジュールの有効化

  1. ワークフロー設定を開く
  2. スケジュールセクションに移動
  3. スケジュールを有効化をONに切り替え
  4. cron式を設定
  5. スケジュールを保存

スケジュールの無効化

  1. ワークフロー設定を開く
  2. スケジュールセクションに移動
  3. スケジュールを有効化をOFFに切り替え
  4. スケジュールが即座に無効化されます
注意: スケジュールを無効化すると、今後のすべての実行が停止されますが、現在実行中のワークフローには影響しません。

スケジュールの更新

  1. ワークフロー設定を開く
  2. スケジュールセクションに移動
  3. cron式を変更
  4. 変更を保存
重要: スケジュールの更新は即座に有効になります。次の実行は新しいスケジュールを使用します。

スケジュール実行の動作

公開バージョン

スケジュールされたワークフローは常に公開バージョンを実行します:
  • 安定性: 現在の編集ではなく、安定した公開バージョンを使用
  • 一貫性: スケジュールされた実行が同じバージョンを使用することを保証
  • 更新: 再公開してスケジュールされたワークフローのバージョンを更新

実行コンテキスト

スケジュールされた実行:
  • ソース: 実行履歴で「SCHEDULE」としてマークされます
  • 引数: デフォルトまたは空の引数を使用(設定されていない場合)
  • 権限: ワークスペース権限で実行
  • ログ記録: すべての実行が実行履歴に記録されます

実行の監視

スケジュールされた実行を監視:
  1. 実行履歴を表示
  2. ソース「SCHEDULE」でフィルタリング
  3. 実行ステータスと結果を確認
  4. 発生したエラーを確認

ベストプラクティス

  1. スケジュール前にテスト: スケジュールする前にワークフローを十分にテスト
  2. 安定したバージョンを公開: 安定した公開バージョンのワークフローのみをスケジュール
  3. タイムゾーンの認識: 正確なスケジューリングのために常にタイムゾーンを指定
  4. 実行の監視: スケジュールされた実行について定期的に実行履歴を確認
  5. エラーハンドリング: スケジュール実行のためにワークフローにエラーハンドリングを実装
  6. リソース管理: 頻繁にスケジュールされるワークフローのリソース使用を考慮
  7. ドキュメント: ワークフローの説明でスケジュールの目的とタイミングを文書化

一般的なユースケース

日次レポート

日次レポートを生成するワークフローをスケジュール:
# 毎日午前8時
0 8 * * *

データ同期

定期的なデータ同期をスケジュール:
# 6時間ごと
0 */6 * * *

週次サマリー

週次サマリー生成をスケジュール:
# 毎週月曜日午前9時
0 9 * * 1

月次処理

月次データ処理をスケジュール:
# 毎月1日午前0時
0 0 1 * *

頻繁な監視

頻繁な監視タスクをスケジュール:
# 5分ごと
*/5 * * * *

トラブルシューティング

スケジュールが実行されない

考えられる原因:
  • スケジュールが無効になっている
  • ワークフローが公開されていない
  • Cron式が無効
  • ワークフローがアーカイブされている
解決策:
  1. スケジュールが有効であることを確認
  2. ワークフローが公開されていることを確認
  3. Cron式の構文を検証
  4. ワークフローがアーカイブされていないことを確認

実行時刻が間違っている

考えられる原因:
  • タイムゾーンが指定されていない
  • 不正なcron式
  • タイムゾーン変換の問題
解決策:
  1. タイムゾーンを明示的に指定
  2. cron式を確認
  3. まず簡単なスケジュールでテスト

実行の失敗

考えられる原因:
  • ワークフローエラー
  • 認証情報の欠落
  • リソース制限
解決策:
  1. 実行履歴でエラーを確認
  2. 認証情報が設定されていることを確認
  3. ワークフローロジックを確認
  4. リソースの可用性を確認

スケジュール検証

Cron式の検証

システムはcron式を検証します:
  • 構文チェック: 有効なcron構文を保証
  • 範囲検証: フィールド範囲を検証
  • エラーメッセージ: 無効な式に対して明確なエラーメッセージを提供

ビジュアルスケジュールビルダー

多くのインターフェースがビジュアルスケジュールビルダーを提供します:
  • ポイントアンドクリック: 視覚的にスケジュールオプションを選択
  • プレビュー: 保存前にスケジュールの説明を表示
  • 検証: スケジュール設定の自動検証

関連機能

  • 公開 - ワークフローの公開について学ぶ
  • API - API経由でワークフローを呼び出す方法を学ぶ
  • 履歴とバージョン - 実行履歴について学ぶ