Skip to content

JP1/AJS3 からの移行 ​

自動変換ツールはありません。Dagu の定義はプレーンな YAML であるため、移行はお客様が作成する、再実行可能なスクリプトとして行います。ユニット定義をテキストでエクスポートし、DAG ファイルを生成して、検証します。ジョブグループを 1 つずつ移行し、切り替える前に JP1/AJS3 と並行して実行してください。

JP1 は製品群です。Dagu が置き換えるのはジョブスケジューリングの部分だけです。監視、資産管理など、その他の JP1 製品には、それぞれ別の代替が必要です。

概念の対応 ​

JP1/AJS3Dagu
ジョブネットDAG(1 つの YAML ファイル)
ジョブステップ
関連線depends
ネストジョブネットdag.run ステップ
リカバリージョブhandler_on.failure
再実行同じ実行には dagu retry、新しい実行には dagu restart
スケジュールルールschedule
カレンダービジネスカレンダー
ファイル待ちの起動条件wait.file ステップ
エージェントホストSSH、または worker_selector で選択したワーカー
同時実行数の制限実行内では max_active_steps、実行をまたぐ場合は名前付きのキュー
マネージャーホストのデータベースデータディレクトリ内のファイル

例 ​

ファイルを待ち、3 つのジョブを順に実行し、失敗時にリカバリージョブを呼び出す夜間ジョブネットの例です。

yaml
type: graph
schedule: "CRON_TZ=Asia/Tokyo 30 22 * * *"
calendar: weekdays

steps:
  - id: wait_for_sales_file
    action: wait.file
    with:
      path: /data/inbound/sales.csv
      poll_interval: 30s
    timeout_sec: 3600

  - id: load_sales
    run: /opt/batch/load_sales.sh
    depends: wait_for_sales_file

  - id: aggregate
    run: /opt/batch/aggregate.sh
    depends: load_sales

  - id: export_report
    run: /opt/batch/export_report.sh
    depends: aggregate

handler_on:
  failure:
    run: /opt/batch/recover_sales.sh

日本の祝日に対応するには、weekdays をカレンダーファイルに置き換えてください。

計画時の考慮事項 ​

  • 可用性。 同時にアクティブになるスケジューラは 1 つだけです。スケジューラに障害が発生すると、共有ストレージ上のスタンバイが引き継ぎます。ストレージはお客様にてご用意ください。障害が発生したホスト上の実行は失敗としてマークされ、再開されません。
  • サポート。 Team および Pro ライセンスにサポートは含まれません。Enterprise 契約では応答目標が追加されます。サポートポリシーを参照してください。
  • 運用担当者のアクセス。 SSO、ロール、監査ログにはセルフホストライセンスが必要です。ロールはサーバー全体またはワークスペースに適用され、個々のジョブには適用されません。
  • 期限のアラート。 期限超過と開始遅延のアラートは Dagu Console が発行します。閉域網では、Enterprise 契約でご依頼に応じて提供する社内に置く Control Plane、または独自の確認の仕組みが必要です。

手順 ​

  1. 1 つのジョブグループについて、ユニット定義をテキストでエクスポートします。
  2. スクリプトで対応付けます。ユニットはステップに、関連線は depends に、リカバリーユニットは handler_on.failure に対応付けます。
  3. 生成したすべてのファイルに対して dagu validate を実行します。
  4. カレンダーを再作成し、dagu calendar fires で次回の起動時刻を比較します。
  5. テストデータを使用して、または副作用を無効にした状態で、ジョブグループを JP1/AJS3 と並行して実行し、結果を比較します。
  6. JP1/AJS3 でジョブグループを停止し、Dagu でそのスケジュールを有効にします。
  7. 次のジョブグループを移行する前に、バックアップとアラートを設定します。

Dagu is open source under the GNU General Public License v3.0.