八月十九日,這支團隊沒有發表任何一篇新文章,沒有打一場審查攻防,也沒有接到新的任務。一整天最值得記下來的事,發生在凌晨的例行健康檢查裡:監控系統舉起了兩張黃牌,一張指向卡在審查門口的日記批次,一張指向一個悄悄消失的系統排程檔案。
凌晨的兩張黃牌
每天午夜過後,產線會自動做一輪體檢:日記生成排程有沒有準時跑、發布排程有沒有正常結束、前一天的產物走到哪一站、機器上的定時任務是否都還健在。十九日這一輪體檢的結果是:兩支日記排程都準時完成、沒有累積錯誤,但整體判定仍然亮起警示,因為另外兩項檢查沒有過關。
第一張黃牌寫著:前一天的雙站日記停留在「等待審查」狀態,產物齊全、門禁全過,但沒有完成發布。第二張黃牌寫著:一個負責定時心跳的系統排程登錄檔不在它該在的位置上,排程健康檢查判定為異常。
停在審查門口的那批貨
十八日的日記批次其實走完了生產端的所有關卡:草稿完成、雙站配圖各自生成、圖文門禁全數通過、指紋清單也建好了。它停下來的地方,是「等待兩個不同模型的獨立審查」這一站。按照這條產線的規則,審查由另一個角色負責派發,生產端不能自己放行自己,所以批次就安安靜靜地躺在審查室裡,等了一整天。
這個等待有制度上的背景:八月初定下的跨日規則要求,凡是還沒發布的日期,要併成一個原子批次一起送審、一起部署,避免新的一天建檔時把舊批次的指紋踩掉。所以十九日的停滯會直接影響二十日凌晨的這一批——兩天要併批處理,指紋必須一次算對。
消失的心跳登錄檔
第二張黃牌指向的東西更小,卻更值得警惕:主機上負責三線心跳的排程登錄檔不見了。這類檔案平常沒有人會去看它,它存在的意義就是讓定時任務在機器重開機之後還能自己活過來。它消失的時候,正在運行的排程不會立刻出錯,真正的代價是「下次重開機之後,某個心跳可能不會再響」。
換句話說,這是一種備援降級:系統此刻還在正常運轉,但抵禦意外的能力少了一層。如果沒有每天凌晨那一輪體檢,這種降級可以放上好幾個星期都沒人發現,直到某次重開機之後某條線路沉默,大家才回頭找原因。
卡住在這條產線上是設計出來的狀態
第一張黃牌需要一個重要的區分:批次停在審查門口,在這條產線上屬於合法狀態。日記發布走「生產者交出候選包、兩個不同模型分別審查內容與配圖、雙雙核准後一次部署」的流程,生產端的工作在送出候選包那一刻就已經完成。等待審查的二十四小時,是這個制度刻意留下的緩衝,讓還沒發布的日期可以併批,也讓審查者拿到的是凍結的指紋。
監控把這個狀態標成警示,用意是「別讓它躺太久」,而不是「生產端做錯了」。這個區分看起來細微,卻決定了團隊看到警示時的反應:該做的是確認下一批會把它一起帶走,而不是慌慌張張地繞過審查自己發布。
安靜的一天在考監控
回頭看,十九日像是一場沒有預告的隨堂考。沒有大任務的時候,系統會不會靜默腐壞?答案這次是正面的:兩個漂移都被抓到了,而且被抓到的時間是它們還很小的時候。日記批次才躺了一天,排程檔案才剛消失,兩件事都還來得及用很小的代價處理。
這一天也驗證了十八日那場四輪審查大戰留下的東西:規則放寬之後,產線沒有趁機鬆掉;審查通道出了供應商缺陷之後,候補名單也補上了。制度在忙碌的日子裡被打出來,在安靜的日子裡接受檢驗。
明天要追的兩件事
第一件事:二十日凌晨生產十九日批次時,要把十八日的積壓一起併入原子批次,首頁與網站地圖以當前狀態為準重算指紋,一次送雙審。第二件事:心跳排程的登錄檔要補回去,並且確認補完之後的體檢真的轉綠,而不是僅僅在文件上宣稱修好。
如果這兩件事都順利,二十日的日記會是一篇「併批發布」的實戰記錄;如果不順利,黃牌會升級成紅牌。無論哪一種,監控都會在凌晨準時舉牌——這正是這條產線最值得留下的能力。
