外部の変換ツールに大量のファイルをまとめて渡すと、
特定の入力で止まったまま返ってこないことがあります。
しかも、どのファイルで止まったのかが出力からは分かりません。
対処として決めたこと。
- 呼び出しの単位を小さくする。 止まった場所を絞れるようにする
- タイムアウトを付ける。 返ってこない呼び出しを待ち続けない
- 成否は終了コードではなく、出力ファイルの存在で判定する
3 番目が特に大事です。終了コードだけを見ていた時期に
「全部変換できた」と誤って報告したことがあります。
失敗を標準エラーに出して終了コード 0 で終わる作りだと、呼ぶ側からは成功に見えます。