ワークフローにリトライを設定しているにもかかわらず、リトライされず後続タスクへ移ってしまう場合があります。これは、「エラー時も後続のタスクを続行する」設定と「リトライ回数」をワークフローに設定していることが原因です。
両機能を直接共存させることはできないため、以下のいずれかの方法でご希望の動作を実現してください。
方法1:リトライさせたいタスクを子ワークフローとして切り出す(推奨)
- リトライさせたいタスクを含む新しいワークフローを作成し、そちらに「リトライ回数」を設定する
- 元のワークフローの該当タスクを、上記の子ワークフロー呼び出しに差し替える
- 元のワークフローには「エラー時も後続のタスクを続行する」を維持する
この構成では、子ワークフロー側でリトライを試み、上限に達しても失敗した場合に親ワークフローが「エラー」を受け取り、後続タスクへ進みます。
方法2:転送設定側にリトライを設定する
ワークフローの「リトライ回数」設定は使用せず、転送設定のリトライ機能を使います。
- 転送設定のSTEP2「ジョブ設定」タブ内の「最大リトライ回数」を1以上に設定する
- ワークフロー側には「エラー時も後続のタスクを続行する」設定を維持する
動作の流れ:
- 転送ジョブ実行時にエラーが発生すると、転送ジョブが内部的に自動リトライを実行します
- リトライ上限に達しても失敗した場合にのみ、転送タスクが「エラー」となります
- その後、ワークフローの「エラー時も後続のタスクを続行する」設定に基づき、後続タスクが実行されます
注意: 転送設定のリトライでは「指数バックオフ」方式で待機時間が設定されており、リトライ回数が増えるごとに待機時間が倍増します(1回目:2秒、2回目:4秒、3回目:8秒…)。リトライを繰り返したのちに成功した場合、待機時間が加算されるため処理時間が長くなります。
コメント
0件のコメント
記事コメントは受け付けていません。