城南科技园区,小博公司研发大楼。
整栋大楼几乎全浸在深沉的夜色里,唯独研发办公区灯火通明,惨白的冷光透过大片玻璃幕墙泼洒出去,刺眼得没有半点人情味。
大工位区早乱成了一锅粥。
机械键盘的敲击声密得像连珠炮,混杂着红牛罐子被捏瘪的声响与断断续续的粗重骂娘声。
高明鼻梁上架着那副略显油腻的半框黑眼镜,本就稀疏的头发被抓得乱七八糟,衬衫下摆从西裤里扯出一半。他两只眼珠子布满了熬夜逼出来的血红血丝,死死盯着面前三台并排亮着荧光的二十七寸专业显示器。
屏幕正中央,灰黑色的控制台日志正以每秒几十行的恐怖速度疯狂上翻。
那一片片刺目的深红色告警,几乎把整个图形化监控面板完全淹没:
【ERRoR:核心服务健康检查失败。】
【wARN:数据库连接超时,任务重试次数超过阈值。】
【ERRoR:数据同步任务执行失败,等待人工处理。】
“草!”
高明狠狠一巴掌拍在合成木的办公桌板上,震得桌角那半盒冷透了的盒饭差点翻倒在地。
“配置到底是谁动的?!”他猛地从人体工学椅上弹起来,扯着嘶哑的嗓门冲着工位深处吼,“程序都回滚了,那两个核心服务为什么还起不来?!再拖下去,积压的任务越堆越多,天亮之后谁去跟业务部门解释?!”
坐在隔壁卡位的一个后端工程师也是满头虚汗,手指在触控板上疯狂滑动排查:“高哥,回滚的是程序版本,数据库那边的配置变更没退干净!”
“没退干净?!”高明快步跨过去,两手撑在对方椅背上,脖颈上的青筋根根暴起,“刚才不是说已经恢复了吗?!”
工程师拉开两份并排的配置记录,指着其中几行标红的差异,声音都在打颤:
“有一批服务实例拿的还是错误配置,重启以后连接一直报错。同步任务又在不断重试,刚处理完一批,后面就重新堆上来了!”
“重试任务为什么还开着?!”
“常规调度停了,补偿队列那边没停全!”工程师一脸快要崩溃的绝望,“刚才有人以为服务已经恢复,把积压任务重新放了进去,结果那两个核心服务根本没起来,任务又全部报错退回来了!”
高明听得脑门青筋突突狂跳,简直气极反笑:“谁让放的?!谁验收的?!恢复了几个节点,跟整条链路恢复是一回事吗?!”
工程师缩着脖子没敢吭声。
高明盯着屏幕上那片密密麻麻的红色,牙根咬得发酸。
晚饭吃到一半,工作群里说核心库配置被改崩了,他拎着电脑包一路赶过来;到了公司,又说已经回滚,马上就好。
结果从晚上拖到凌晨。
这个说自己的程序没问题,那个说配置已经退回去了,还有人拍着胸脯保证,监控刚才明明绿过几分钟。
绿了几分钟。
就凭这几分钟,积压任务又被一股脑放了回去,把刚喘上半口气的系统重新堵得死死的!
“这他妈到底是在排故障,还是在轮流碰运气?!”高明压着嗓子骂了一句,“谁觉得自己修好了,谁就把完整链路跑一遍,别甩张绿色截图就告诉我万事大吉!”
工程师苦笑两声,揉了揉发胀的眼眶:“高哥,现在还有个麻烦。前头有几批任务执行到一半就断了,单看这边的状态,分不清到底哪些已经处理,哪些没处理。”
“原始记录呢?”
“都在,但是得逐条核。”
“那就核!”
高明烦躁地抓起桌上的矿泉水灌了半瓶,冰凉的液体顺着食道灌下去,激得他浑身直打哆嗦。
他最烦的就是这种事。
出了问题的时候,一个比一个会解释;真要把谁动了什么、哪一笔执行到了哪里摊开来看,又全是“应该”“可能”“按道理”。
偏偏系统不认按道理。
那几百条悬在半空里的异常记录,也不会因为谁多喊两声“底层没问题”,就自己变回原样。
“行了,别废话了!”高明一把扯下工牌扔在键盘边,狠狠咬了咬牙,“通知运维,把还在自动重试的任务全部停住,错误配置先恢复到一致,两个核心服务逐个验证。那六百多条状态不明的记录单独拉清单,对着原始日志核,没核清楚之前不准重跑,更不准直接改成成功!”
“全手动核验?高哥,这可是整整几百条记录啊,大家今晚不用合眼了!”
“想合眼也得先扛着!”高明双手叉腰,在过道里来回踱着烦躁的碎步,“天亮之前先把核心服务恢复,异常记录一条条处理!今年的考核还没结束,谁想在这种时候背一份重大故障通报?!”
满屋子二十多个程序员闻言,只得认命地叹了口气,抓起桌上的红牛仰头灌尽,噼里啪啦的机械键盘敲击声再度如骤雨般炸响开来。
高明独自退回自己的工位,重重陷进人体工学椅里。
看着屏幕上逐项刷新的检查结果,太阳穴处针扎一样的刺痛感愈发强烈。
他疲惫地闭上双眼,抬手死死按压着眼眶,只觉得胸口那股郁气怎么散也散不干净。在公司摸爬滚打这么多年,每天面对的就是这种高压、甩锅、通宵背锅的现实烂泥。他之所以能在这种窒息的牛马日子里咬牙撑到现在,无非就是靠着回到家推开门那一刻,看到那个温婉端庄的娇妻、看到锦江府宽敞明亮的大平层时,心头涌起的那点所谓“中产体面”在支撑着。
想到许薇,高明紧绷的嘴角微不可察地软化了半寸。
虽然许薇平日里脾气冷淡,偶尔还嫌他大腹便便、嫌他身上有班味,但昨天晚上这一顿饭下来,那个男人之间的心结总算是彻底解开了。
陈野大气,没咬着派出所那点破事不放;许薇也懂事,老老实实听话开车把人送到了地方,甚至还主动在微信里帮他敲边鼓问了后续排课的事。
更难得的是,许薇还特意发微信叮嘱他“胃不舒服记得吃药”。
高明胸腔里泛起一股微弱却滚烫的自豪感。
你看,女人终归是女人,嘴上再怎么要强娇气,真到了这种节骨眼上,心里最挂念、最依靠的,依然是他这个能在公司独当一面、靠高薪把全家体面撑起来的合法丈夫。
只要这波线上故障平稳渡过,后头再把升职和年终奖争取下来,到时候换辆更好的车,让许薇彻底把那些杂七杂八的烦心事抛开,舒舒服服在家备孕二胎,这辈子就算彻底扎牢了根基。
至于健身。
她愿意练就练。
下个月再排两节,无非就是四千块钱,只要陈野确实有时间,能把她带得气色好、身体好,这钱就算从自己的年终奖里提前扣,他也舍得。
高明从抽屉里摸出平时备着的胃药,随后又掏出手机,点开了许薇的微信。
手指在输入框里极快地敲下一串带着疲倦却满是温情的文字:
【老婆,核心链路的报错刚才已经按住大半了,不过天亮前还得盯着核对异常记录,今晚确实走不开。】
顿了顿,他又自我感动般地补上了后半段:
【你跟儿子早点睡,把门反锁好。上午我从公司回来顺路去买你爱吃的鲜肉生煎,等我年底争取升完职,咱们再看看更好的学区,你也不用成天为了点小事跟着操心。】
检查了一遍这番体贴周全的词句,高明心满意足地按下了发送键。
……
与此同时。
临江市中心,锦江府高档住宅主卧内。
黑暗里,床头柜上的手机屏幕无声亮起,微弱的白光将天花板照出一小片方形的虚影。
许薇半靠在真皮软包床头,身上换了一件素黑色的丝绸睡袍,长发松散地垂在肩侧,整个人在冷气十足的房间里安安静静地坐着,没有半点睡意。
她垂眸扫向屏幕上高明刚刚发来的那两长段文字。
【把门反锁好。】
【等我年底争取升完职,咱们再看看更好的学区……】
那些带着技术主管式优越感与习惯性画饼的说辞,落在眼底,却只激起她胃里一阵阵冰冷的干呕感。
反锁?
几个小时前,就在高新大道的独立办公室里,她亲自跟着陈野进了大门,亲手替那个男人理正了领口,甚至在关紧的办公室里,自己还踮着脚尖把嘴角贴了上去,冠冕堂皇地算成了两千块钱的“参观门票”。
而在那之前,高明先是在饭桌上言之凿凿地说“放心”,接着又在车载蓝牙里语气诚恳地托付那个男人,让他帮忙督促自己坚持训练。
许薇闭了闭酸涩的眼眶,仰头靠在冰凉的床头靠垫上。
掌心里攥着的手机突然又突兀地轻震了一下。
不是高明。
是刘姐发来的一张刚刚在网上截取的短视频图:
【薇薇你看!又刷到你那个陈教练了!无装备三百二十公斤硬拉,这视频看几遍都觉得炸裂!】
紧接着闺蜜的语音条带着浓浓的兴奋砸了过来:
“周日下午两点力量工厂是吧?说定了啊!这回就算他再手黑,老娘也非得当面领教领教不可!”
许薇看着屏幕上那一串张扬的文字,下意识伸手摸了摸自己的右膝外侧。
那里曾经留下的擦伤,连同高明蹲在跟前替她擦碘伏、贴创可贴的画面,猝不及防地从记忆深处翻了出来。
被高明用加薪升职与学区房描绘出来的体面生活,和那个冷硬男人肆无忌惮撕开的欲望缺口,就这么赤裸裸地在她眼前撞在了一起。
许薇用力咬紧了下唇,直到唇瓣泛出一丝血色,才在黑暗中低低吐出了三个字:
“……狗男人。”