軽量化処理のエラーとリトライについて

ある画像ファイルに対するサイズ削減処理が不測のエラーにより失敗したとき、次回のコマンド実行時もそのファイルは再び処理(リトライ)されます。ただしリトライが行われるのは連続2回までです。

つまり初回の実行と合わせて、連続で3回まで処理までが行われます。

不測のエラーとは以下のような場合です。

  • ファイルの読み込みや書き込みができなかった
  • ファイルフォーマットに異常があった
  • 外部ファイルシステムへの処理でネットワークエラーが発生した

次のケースはエラーではなく処理の正常な断念なので、ファイルは処理が完了した扱いとなります。

  • 十分なファイルサイズ削減が見込めなかった
  • ファイルサイズ削減処理が

3回の実行で繰り返しファイルの処理が失敗すると、そのファイルは次回からリトライの対象から外されます。

ただし、ファイルの属性(最終更新日・サイズ・パーミッションのいずれか)に変更があれば、そのファイルの処理を再度試みます。

この属性変更による再実行は、正常に完了したファイルについても同様です。ユーザーがデータを作り直したと見なして、新しいデータに対してファイルサイズの削減処理を試みます。

連続失敗回数をカウントし直します。また3回連続で失敗すると、ファイルの属性の変更があるまでファイルは処理対象から外されます。

強制的にリトライするには

この連続リトライ回数は、コマンドラインオプション--file-error-retryで変更することができます。

連続失敗回数の閾値を4に変更することで、すでに3回連続で失敗しているファイルも処理が再実行されることになります。

$ lightfile --serial <シリアルコード> --dir <対象のディレクトリ> --file-error-retry 4

4回目も再実行に失敗したファイルを対象にする場合は5を指定します。

999など、現実的ではない大きな数値を指定する方法でも同様に強制的なリトライを行うことができます。

$ lightfile --serial <シリアルコード> --dir <対象のディレクトリ> --file-error-retry 999