“如果不處理,會。”周衡說。
客戶沒有再壓價,立刻把現場負責人叫來。過去他們會同時給幾家供應商打電話,每家先證明不是自己;今天螢幕上已經有一條完整鏈,刻度直接指出問題落在哪個回寫環節。
周衡讓大家按已經確認的應急安排展開。客戶保留生產操作權,丁卓負責現場判斷,新的交付工程師核每一批結果,公司裡的開發準備永久修復方案。邊界一句講清,後面就是把問題真正壓下去。
丁卓帶上公司裝置,從主辦方會議區轉往瀾橋的票務機房。周衡回公司協調開發與測試,雙方在同一場遠端會里繼續確認結果。
路上,他請瀾橋技術負責人準備三類本地結果:最近兩個小時每分鐘進入與完成數量、相同來源任務的重入關係、核心增量與失敗回寫各自佔用工作池的比例。
車停到公司樓下時,周衡先聽見耳機裡傳來鍵盤聲。等他上樓進門,兩名開發已經把需要比較的結果擺好,測試姑娘拿著水杯從旁邊走過,指了指他的位置,說空調剛調過,先坐。
他沒像從前那樣一進門就問誰還沒弄完,只把外套搭上椅背,接過已經查到的部分往下看。螢幕那端,丁卓也在安排現場工程師核第一組資料。
有人先走一步,有人接住下一步,周衡終於能把注意力完整地放到那條異常上。等主辦方再接進會議時,他們拿出的已經是同一份結果。
九點二十六分,丁卓到達票務機房。
瀾橋技術負責人在客戶終端上開啟證據編號對應的本地檢視。原始售票和供應商標識沒有上傳,現場按短期編號檢視。抽取的二十組失敗任務裡,十七組在收到相同失敗狀態後重新生成了任務編號。
新編號讓單任務重試計數從零開始。
原有限制只看當前任務編號。舊任務到達次數上限後被標成結束,介面卡卻根據同一來源狀態建立一條新任務,再次進入共享工作池。它不是某一條任務無限重試,而是一串看起來都很新的任務互相接力。
丁卓讓瀾橋技術負責人再核來源摘要與業務序號。
同一來源狀態、同一業務序號、同一失敗原因,在四十七分鐘裡生成最多九個不同任務編號。票券和訂單結果尚未被重複寫入,因為下游冪等仍在生效;可每次失敗檢查、簽名和回寫都佔用工作執行緒。
晚上九點四十分,失敗回寫佔用工作池從百分之二十三升到百分之四十八。
十點零五分,升到百分之五十七。
核心售票增量延遲從一分四十秒漲到二分二十二秒,仍未越過三分鐘指標。佇列最老等待卻已經超過二十七分鐘,完成速度連續十八個取樣低於進入速度。
瀾橋技術負責人提議立刻重啟一組工作程序。
“重啟會清掉當前計數,介面卡還會把失敗狀態重新建成新任務。”丁卓說,“先別讓證據斷掉。”
他們用現有監控做容量拆分,沒有釋出新程式碼。
當前每分鐘總進入約三百四十條,穩定完成約三百零二條,淨增加三十八條。失敗回寫的平均處理時間又是正常增量的三倍以上。按過去四十五分鐘的佔用變化,即使外部進入量不再增加,工作池也會在凌晨四點前把大部分能力耗在這條迴圈上。
主辦方的倒計時還在向前走。明天上午十點統一開售,宣傳已經鋪出去,十二個上游渠道沒有哪一家能臨時撤場。現在每提前一分鐘發現問題,都會讓明早多一分從容。
丁卓沒有因結論清楚就先動手。
他把最關鍵的兩張圖推到主辦方面前:迴圈編號和共享容量。問題已經不再是頁面偶爾變慢,而是失敗任務會不斷偽裝成新任務,搶走真正出票需要的資源。
“隔離迴圈,先把主鏈讓出來。”丁卓說。
周衡從遠端會里確認方案,另一名交付工程師開始準備回放。客戶技術負責人接過動作清單,直接去找現場有權批准的人,沒有再打電話問原廠什麼時候能來。
主辦方負責人看完,問周衡方案有沒有把握。周衡把恢復和停止條件指給他看:“按這幾步來。先保護明天要賣的票,再處理歷史失敗。”
十點二十六分,丁卓在處置卡的影響欄寫下結論。
”。路鏈心核垮拖會前亮天,預干不率斜前當按。認確經已環試重“








