自動処理がタイムアウトしたとき、同じ処理をもう一度動かすだけでは、メール送信や記録登録が重複する場合があります。エラー処理では、失敗の種類と、どこまで完了したかを分けて記録します。
エラーを三つに分ける
| 状態 | 例 | 次の扱い |
|---|---|---|
| 一時的な失敗 | 接続が不安定で読み取りに失敗 | 回数・間隔を制限して再試行 |
| 入力や権限の不備 | 必須項目不足、参照権限なし | 修正や担当者確認まで保留 |
| 結果が不明 | 登録先の応答が戻らない | 実際の登録状態を先に照会 |
同じHTTPエラー名でも、外部側で処理が始まっていたかによって判断が変わります。連携先の仕様と実行記録を確認し、再試行できる工程を限定してください。
受付番号と状態を残す
架空の問い合わせ処理なら、受付番号、下書き作成済み、承認済み、送信確認済み、結果不明を保存します。下書きができた後に通知だけ失敗した場合、下書きから作り直す必要があるかを判断できます。
外部へ影響する処理では、連携先が対応していれば重複を防ぐ識別子を利用します。対応していない場合も、履歴確認と担当者判断を組み合わせ、無制限の再試行を避けます。
通知に必要な情報を絞る
担当者に渡すのは、受付番号、失敗した工程、時刻、次に必要な対応です。ログや通知に顧客の本文、認証キーをそのまま載せない設計にします。詳細は権限のある担当者が元の保存先で確認します。
正常系と一緒に失敗例を試す
導入時には、同じ入力を二度渡す、必須項目を空にする、権限のない資料を指定する、接続失敗を起こす、といった試験を架空データで行います。保留になった処理を誰が直し、再開後に重複しないかまで確かめます。
記録する項目は、試験ID、入力条件、期待状態、実際の状態、担当者の修正、再開結果です。AI導入の評価方法にも、使えなかった例を残す考え方をまとめています。
四つの工程のうち、どこから再開するかを決める
架空の処理「問い合わせ受領→分類→台帳登録→担当者への通知」を考えます。通知に失敗しても、登録まで完了しているなら全工程をやり直す必要があるとは限りません。
| 止まった場所 | 先に確認すること | 再開の考え方 |
|---|---|---|
| 分類前 | 入力を受領した記録 | 未実行を確認し、同じ受付IDで処理 |
| 登録時に応答途絶 | 受付IDに対応する登録先の状態 | 未確定の間は再登録しない |
| 登録済み・通知未実行 | 登録IDと通知履歴 | 許可された通知工程だけ再開 |
| 通知結果も不明 | 通知先の履歴や処理番号 | 照合できなければ担当者へ保留 |
処理IDをログに残すだけでは、同時実行による重複は防げません。連携先の重複防止機能が何を同じ処理とみなすか、保存期間やエラー時の扱いまで確認します。AWSの再試行と冪等性の説明
試験では「外部側は成功したが応答だけ失われる」条件も含めます。成功・失敗が分からないまま新しいIDでやり直して、別の処理として実行されないようにしてください。
止まる処理と実行履歴の概要を持って、自動化の運用改善を相談してください。