ワークフロー定義について
  • 15 Nov 2023
  • ダーク
    ライト
  • PDF

ワークフロー定義について

  • ダーク
    ライト
  • PDF

Article Summary

概要

ワークフロー定義についてのヘルプページです。

ワークフローの中に組み込む転送ジョブやデータマートジョブなどの1個ずつの単位を「タスク」と呼びます。
ワークフロー定義では、タスクの順序と組み合わせを設定することで、一連のフローを作成します。

workflow.png

タイムアウト設定

image1.png

タスク同時実行上限数

フロー内で設定する並列のタスクを同時実行する上限数を決定します。
最大で10個までのタスクを同時実行設定することが可能です。

タスク同時実行上限数を設定すると、各タスクを並列で定義した際に、一つのワークフロー上で並列で動くタスク数が増えるため、ワークフロー全体の実行時間短縮につながります。

タイムアウト設定

無効にした場合、ワークフロー定義上では、実行時間によるタイムアウトは設けません。設定したワークフローが完了するまで実行が進みます。
有効にした場合、ワークフロージョブが開始してから設定した時間が経過すると、ジョブをキャンセルします。
タイムアウトでジョブがキャンセルされると、停止位置から再実行、もしくはワークフロージョブを中断することができます。
もし、転送元などワークフロー定義以外の場所でタイムアウトを設定していた場合、そちらのほうがワークフロー定義上のタイムアウト設定よりも優先されます。
たとえば後続で利用しているBIツールのジョブのスケジュールの関係など、指定の時間までにワークフロー処理が終わっていないといけない等の制限がある場合、時間になったら強制的にワークフロージョブを停止したい、といった場合に使用できる機能です。

リトライ回数

ワークフローが失敗したときに、自動リトライを行う回数、および次回リトライ実行までの時間間隔を設定します。
なお、以下の場合には自動リトライは行われません。

  • 回数を0回に設定した場合
  • タスクが全て成功だった場合
  • キャンセルがあった場合
リトライ間隔に関する制約

リトライ回数とリトライ間隔の積が60分を超えるように設定することはできません。

ジョブの重複実行

ワークフロージョブが、次のスケジュールの時間になってもまだ実行中の場合、次のスケジュールをスキップするか重複実行するかを選択します。
スキップした場合、データのリアルタイム性は下がりますが、転送先でのデータ重複などの心配がありません。重複実行した場合、データの二重反映などの懸念がありますが、スケジュール通りのデータ反映が行えます。

タスクのエラーハンドリング

前のタスクが失敗したとき、以降のタスクを実行するかどうかを選択します。
OFFにした場合、いずれかのタスクが失敗すると、後続のタスクを実行せず、ワークフローを停止します。
ONにした場合、いずれかのタスクが失敗しても、後続のタスクを実行します。
ワークフロー内に前後の依存関係をもつタスクがあるケースでは、エラーハンドリングをOFFにし、意図しないデータの更新を避けることができます。
依存関係のないタスクのみの構成であれば、失敗したタスク以外は実行しても問題ないと考えられます。

スケジュール設定・通知設定

  • ワークフローのジョブ実行をスケジュール設定して管理することができます。
    毎時、毎日、毎週、毎月の4パターンから、実行するタイミングを選択します。
    ワークフロー定義と各タスクにそれぞれスケジュール設定をしていた場合、すべてのスケジュールが実行されるものとなります。可能な限り、ワークフロー定義か各タスクか、どちらかにスケジュール設定を寄せて運用することをおすすめします。

image2.png

  • SlackもしくはEmailでの通知を設定し、アラートを管理することができます。
    一つのワークフローに対して複数の通知を設定できるので、ワークフロージョブ完了時、エラー時などによって使い分けることが可能です。

image3.png

フロー編集

  • フロー編集画面で、転送ジョブやデータマートシンクなどを配置することで、フローを作成します。
  • フロー図内を範囲選択することで複数のタスクを一度に選択し、一つの始点から一度に線を引いて順序を設定することができます。
  • ワークフローの親子関係を作成することができます。
    子ワークフローのタスクが失敗したことにより親ワークフローが停止し、親ワークフローを再実行する場合、子ワークフローのエラーになったジョブから再実行がスタートします。

image4.png

ワークフロージョブが失敗したときの挙動

ワークフロージョブが失敗した状態からジョブを再実行すると、停止したタスクから再実行がスタートします。

例)

  • 転送ジョブ並列2タスク+データマート+通知のフロー図
  • 並列実行2タスクまで許可している
  • 転送ジョブの1つが失敗した場合
  • タスクのエラーハンドリングをONにしている場合、失敗していない転送ジョブ、データマートジョブ、通知タスクは実行されます。
  • タスクのエラーハンドリングをOFFにしている場合、エラーが検知された時点でワークフロージョブが停止します。
  • エラーが検知された転送ジョブの設定を変更し、再実行すると、修正したタスクから再実行がスタートし、後続のジョブが実行されます。

この記事は役に立ちましたか?