毎朝動くはずの自動出品が、1週間止まっていました。原因は、自動ログインの仕組みが「もうログインは有効」と誤って判定し、有効だったログイン状態を空のファイルで上書きしていたこと。直し自体は小さなものです。痛かったのは直す手間ではなく、「止まっていることに1週間気づかなかった」ことです。
何が起きたか
自分の会社では、海外ECモールへの出品を毎朝自動で動かしています。前の日までに人が選んで確認した商品を、朝の決まった時間に、仕入れ先の管理画面へログインして出す仕組みです。出す商品を選ぶのも、売値を決めるのも人。機械は、人が決めたものを決まった時間に出すだけです。
ある朝、記録を見ると「セッション無効」(ログインが切れている)で止まっていました。さかのぼると、1週間前から毎朝、同じところで止まっていました。その間の出品は止まったままです。
原因
仕組みはこうでした。
- 朝、まず「ログインは有効か」を確かめる
- 無効なら自動でログインし直して、ログイン情報(Cookie)をファイルに保存する
- そのファイルを使って出品する
問題は2でした。自動ログインの仕組みが、ログイン情報が空なのに「既に有効」と判定してしまう。そして、その空の状態を、保存先のファイルに書き込んでいました。結果、前日まで有効だったログイン情報が空のファイルに置き換わり、3で「セッション無効」になる。翌朝も同じことを繰り返す。
つまり、「直す役」が毎朝「壊す役」をしていた、という話です。
直し方
直したのは2か所です。
- 自動ログインの仕組み:ログイン情報(Cookie)が実際にある時だけ「有効」とみなす
- 朝の手順:先に確認して、無効だった時だけログインし直す。有効なら触らない
直したあと、ログインし直し → 確認、まで通して動くことを見てから元に戻しました。
教訓:無人で動くものは、「動いていない」ことに気づく仕組みが要る
私が反省したのは、仕組みの作りより、監視のほうです。
無人で動くものは、動いている時は静かで、止まっている時も静かです。人がやっていれば「今日出品してないな」と誰かが気づきます。機械に任せると、誰も見ていなければ1週間でも止まり続けます。
そこで、毎朝の報告に「ログインが有効か・今朝は何件出す予定か」が出るようにしています。予定なしの日が続けば、朝のうちに目に入ります。
自動化を作る時、動く部分には時間をかけます。でも「止まった時にどう知るか」は後回しになりがちです。順番は逆で、止まったことを知る手段を先に決めてから、動く部分を作るほうがいい。これは次に何かを作る時の、自分へのルールにしました。
御社なら、どこに当たるか
- 毎朝・毎晩動いている自動の処理(集計、取り込み、送信、バックアップ)に、「動いた/動かなかった」の知らせはありますか
- その知らせは、人が見る場所(朝のチャット、メール)に出ていますか。記録の中にだけ書いてあるのは、無いのと同じでした
- 「ログインし直す」「上書きする」ような、状態を変える処理は、その前に今の状態を確かめていますか