この記事は、前の記録の続きです
前の記録(毎朝動いているはずのAI自動化41本を5.3日ぶん数えたら、最大91%が発火すらしていなかった)で、当社の自社メディア更新が最大91%抜けていた、という都合の悪い数字を出しました。
穴が空いているとわかったら、塞ぐしかありません。塞ぎ方は2つあります。原因を突き止めて直すか、止まったら自動で叩き起こすか。原因(1回の処理が数十分と長いこと)の機序はまだ追い切れていないので、先に後者を入れました。「見張り役(watchdog)」です。
結論から言うと、この見張り役は導入初日から仕事をしました。止まっていた3本を自動で叩き起こし、59時間止まっていた記事生成を51分かけて復活させました。 ただし、見張り役自身にも正直な弱点があります。それも含めて載せます。
用語を3つだけ
- 見張り役(watchdog) … 他のジョブがちゃんと動いているかを定期的に見回り、止まっていたら再始動させる番人のプログラムです。今回は1時間ごとに動かしています。
- 「止まっている」の判定 … 2通りで判断します。①起動した記録(run_start)だけ残って、終了の記録(run_end)が一定時間経っても来ない。②最後に成功してから、そのジョブの予定間隔+余裕を過ぎても新しい成功がない。このどちらかなら「止まった」とみなします。
- クールダウン … 同じジョブを短時間に何度も蹴らないための待ち時間です。一度再始動したら、次に蹴るまで一定時間あけます。暴走を防ぐ仕組みです。
見張り役に持たせた「暴走しない」工夫
自動で再始動する仕組みは、作り方を間違えるとそれ自体が暴走します。全ジョブを一斉に何度も蹴り続けて、Macを過負荷で落とすからです。そうならないよう、3つの箍(たが)をはめました。
- 保守的なしきい値。「予定間隔+余裕」を過ぎて初めて止まったと判断します。少し遅れただけで蹴りません。
- クールダウン。一度再始動したジョブは、しばらく再始動の対象から外します。
- 1回あたりの再始動上限。1回の見回りで再始動するのは最大3本まで。多数が同時に止まっていても、一気に蹴らず、毎時すこしずつ回復させます。
導入初日に、実際に起きたこと
2026年7月23日 19:00、見張り役の初回の見回り。
見回った結果、7本が止まっていると判定されました。 そのうち上限の3本を再始動し、残る4本は「今回の上限に達したので次回に回す」と記録されました。
| 判定 | ジョブ | 状態 |
|---|---|---|
| 再始動した | 朝の運用チェック | 成功実績なし |
| 再始動した | 補助金の鬼 データ更新 | 成功実績なし |
| 再始動した | 補助金の鬼 記事生成 | 最後の成功から59.4時間(許容30時間) |
| 次回に回す | 補助金の鬼 ストック生成 | 上限3に到達 |
| 次回に回す | AIの鬼 note自動投稿 | 上限3に到達 |
| 次回に回す | UchUchU 記事生成 | 上限3に到達 |
| 次回に回す | UchUchU 週次レビュー | 上限3に到達 |
そして、再始動した3本がどうなったか。
- 補助金の鬼 記事生成 … 再始動して約9分で完走。その日の記事が1本、無事に生成されました。
- 補助金の鬼 データ更新 … 再始動して約51分で完走。
- 朝の運用チェック … 再始動はしたものの、実行の中で「UchUchUの日次処理が3日前から動いていない」ことを検知して、エラーで終了しました。
最後の1本が、地味にいちばん価値がありました。見張り役が叩き起こしたジョブが、さらに別の止まっているジョブを見つけてきたからです。穴の底に、もう一つ穴があったわけです。
正直に書く、見張り役の弱点
この仕組みは初日から役に立ちました。が、万能ではありません。都合の悪いところも書きます。
- 見張り役自身も、cronで動く1本のジョブです。 つまり、前の記事で書いた「cronが抜ける」問題は、この見張り役にも起こりえます。番人が寝ていたら、誰も番をしていません。 番人を見張る仕組みは、まだありません。
- 一度に3本しか戻せません。 初日は7本止まっていて、4本は次の時間に持ち越されました。同時多発で止まると、全部が戻るまで数時間かかります。
- これは対症療法です。 なぜメディア更新が数十分もかかり、抜けるのか——その根本原因は、まだ突き止められていません。叩き起こしているだけで、倒れる理由は直っていない。
- 導入したてで、実績はまだ初日の3本だけです。「うまくいっている」と言い切るには早い。数週間まわして、再始動の回数と成功率がどう出るかを、また数えて報告します。
それでも、この一手には意味があります。前の記事の問題は「止まっても誰も気づかない」ことでした。見張り役は、少なくとも気づいて、動く。気づかないまま何日も止まっているより、はるかにましです。
関連する記録
- 毎朝動いているはずのAI自動化41本を5.3日ぶん数えたら、最大91%が発火すらしていなかった — この見張り役が塞ごうとしている穴の全数調査。
- 自動化が3日間止まっていたのに、誰も気づかなかった — 見張り役を作る動機になった、最初の事故。
- 自動化26本に「見張り役」の画面を付けたら、そもそも全部止まっていた — 「見る」画面と「叩き起こす」番人の役割分担。
まとめ
- メディア更新が抜ける穴に対し、根本原因を直す前に「止まったら自動で再始動する見張り役」を入れた。
- 見張り役は1時間ごと・1回3本まで・クールダウンありで、暴走しないよう箍をはめている。
- 導入初日、7本の停止を検知し3本を再始動。59時間止まっていた記事生成を51分かけて復活させた。
- 叩き起こしたジョブが、さらに別の停止ジョブを発見した。
- 弱点も正直に:番人自身がcronで動くため番人が寝たら終わり、一度に3本しか戻せない、根本原因は未解決、実績はまだ初日だけ。
- 止まっても気づかないより、気づいて動くほうが、ずっとまし。数週間まわしてまた数える。