JP1/AJS3 からの移行
自動変換ツールはありません。Dagu の定義はプレーンな YAML であるため、移行はお客様が作成する、再実行可能なスクリプトとして行います。ユニット定義をテキストでエクスポートし、DAG ファイルを生成して、検証します。ジョブグループを 1 つずつ移行し、切り替える前に JP1/AJS3 と並行して実行してください。
JP1 は製品群です。Dagu が置き換えるのはジョブスケジューリングの部分だけです。監視、資産管理など、その他の JP1 製品には、それぞれ別の代替が必要です。
概念の対応
| JP1/AJS3 | Dagu |
|---|---|
| ジョブネット | 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 つのジョブグループについて、ユニット定義をテキストでエクスポートします。
- スクリプトで対応付けます。ユニットはステップに、関連線は
dependsに、リカバリーユニットはhandler_on.failureに対応付けます。 - 生成したすべてのファイルに対して
dagu validateを実行します。 - カレンダーを再作成し、
dagu calendar firesで次回の起動時刻を比較します。 - テストデータを使用して、または副作用を無効にした状態で、ジョブグループを JP1/AJS3 と並行して実行し、結果を比較します。
- JP1/AJS3 でジョブグループを停止し、Dagu でそのスケジュールを有効にします。
- 次のジョブグループを移行する前に、バックアップとアラートを設定します。

