cronに載せる前に、「再試行してはいけない操作」を決めておく
AIのCLIやバッチをcronやsystemdに載せるとき、再試行の回数だけを先に決めがちです。SEの視点では、回数より先に「自動では繰り返さない操作」の一覧を置きます。その考え方を、noteに書きました。
再試行してよいのは、3つを満たす失敗だけ
- 副作用がない(読み取り、一時ファイルの再取得など)
- 繰り返しても、外部や本番への影響が増えない
- 成功の判定(終了値と成果物)が別に決まっている
どれか1つでも欠ける操作は、自動の再試行から外します。
「とりあえず再実行」が危ない理由
- 通信の切断、権限不足、本番への書き込みの失敗は別物なのに、同じ「3回再試行」を当てると被害だけが増えることがあります。
- 成功の判定がないまま繰り返すと、「動いたように見える」状態が積み上がります。
- VPSに移すと実行の頻度を上げやすくなり、危ない操作の再試行も増えます。
実際に、自動の再試行で同じ処理が何度も実行されてしまったことがありました。
先に書き出しておくこと
対象の処理を1つ選び、その処理が触るもの、人が確かめてからやり直したい操作(最低3つ)、自動で繰り返してもよい操作、通知先を書き出します。書けなければ、まだcronに載せないほうが安全です。
続きはnoteへ
禁止リストの最初の版と、再試行を許す範囲の決め方は、noteの「cronに載せる前に決める『再試行してはいけない操作』」(有料)にまとめています。成功の定義は「終了値0を成功にしていませんか?」とセットで読んでください。