パラレルサブフローのデバッグ


はじめに

ASTERIA WARPのパラレルサブフローで実行されたフローをデバッグする方法を考えてみました。

フローのデバッグ実行とは

フロー内のコンポーネントにブレークポントを設定し、ブレークポイントで一時停止した箇所からステップ実行で1つずつ実行しながらその時の状態を確認することができる機能。

パラレルサブフローとは

ParallelSubFlowコンポーネントを使ってループ処理で別のフローを並列に実行することができる機能。
マルチコア、マルチCPU環境などでは、単純にループ処理を行うよりも効率的に処理を実行することが期待できる。

パラレルサブフローをデバッグするには

パラレルサブフローで実行されるサブフローは個別のスレッドとして並列実行用の実行エンジンに振り分けられるので、呼び出し元の親フローからステップイン実行で確認することはできない。
※FlowInvokerとして実行するフローも同様。
ただし呼び出されるフローは別スレッドとして実行されるのでParallelSubFlowコンポーネントで呼び出されるフローを「外部からフローを実行する」チェックボックスをオンにして

デバッグの待受状態にしておくことでデバッグすることは可能。

デバッグできるのは並列実行したフローの1つだけ。(おそらく最初に実行されたフロー)

おわりに

親フローからのステップイン実行はできませんが呼び出されるフローを待機状態にしておくことで並列実行されたうち1つのフローをデバッグできるようです。