跳转至

第四章 · 送别

周五,八点四十,邮箱里有一封抄送他的通告:规则引擎调度服务升级,本周日凌晨执行,发件人他不认识。

他翻到附件第三页那张架构图,五秒钟就看明白一个问题:这个调度服务和结算系统的定时任务用的是同一个资源池。

周日凌晨,结算有月中的对账批任务,二十三点五十启动,跑到凌晨一点半。

两边一起跑,资源池只有二十个线程。

通告里没有提这件事。窗口是谁定的,通告里也没写。抄送列表里有十四个人,结算这边只有他一个。

老梁的搪瓷杯还在桌上。键盘下面压着一张手写的纸。

今晚七点,单位对面那家湘菜馆,包间在二楼,叫“竹溪”。结算组都来,我请。

是老梁的字。笔画很重,第二行写歪了,最后三个字挤在纸边上。

陈稳把纸折好,放回键盘下面。

他给那个发件人回了一封邮件,四行:写了资源池的名字,写了批任务的启动时间和平均耗时,写了两边并行时线程数不够,建议升级窗口挪到凌晨两点后。抄送纪衡。

发送。

八点五十二分。

IDEA 里昨天那个 TODO 还在——跨天时间窗,二十二点到凌晨两点。顾源说要在校验器里处理。校验器已经提交了,拦截器也跑通了,那个 TODO 只是注释,不是代码。

他把光标放在 TODO 那行,敲了几行,写了一个新的时间解析器,支持跨天段。然后他发消息给 MR 的那个 reviewer:

时间窗配置类增加了跨天支持。单测新增 3 例。要不要合进来,还是单独提一个 MR。

那个人回得很快:单独提,合进来了就不好回了。

“为什么。”陈稳打了两个字,删了。他知道为什么:MR 越大,reviewer 越不敢批。

他回了一个“好”,新建分支,把跨天支持移过去,提交。空的 MR,先放着。

十点十五分。发件人还没回邮件。纪衡也没有。

监控大盘第三行第二格,99.98%,绿线,平的。刷新,还是。


下午三点,群里有消息。

是结算组做渠道对账的那个人发的:“老梁说七点,对面湘菜馆,包间竹溪,收到扣 1。”

陈稳打了“1”,发了。

蒋辉回了一个:“收到,今晚最后一个到的人买单。”

后面跟了三个表情,一个笑,一个抱拳,一个啤酒。

那封资源池的邮件还是没有回复。他把邮件线程重新打开,确认了一下抄送列表——纪衡在里面。发送时间八点五十二分,到现在六个小时。

十一点三十四分,易文发过一条消息,他刚才在编译,没看见:

你们组那个通告,规则引擎升级,是营销那边推的。

他回:“窗口是谁定的。”

不知道。我这边只看到审批流最后一个签字是他们组长。

你要是提了意见没人回,就别再提第二次。第二次就变成你事多。

他把这条读了两遍,没有回复。

何晚下午两点发过一条:“周六有什么安排?”

他回:“今晚部门聚餐,老梁请客。”

隔了很久没有回复。他把手机翻过来,屏幕朝下。

六点四十,锁屏。老梁那边搪瓷杯还在,手写的纸还在,键盘的位置一天没变过。

电梯里没有人。

大楼门口到湘菜馆隔一条斑马线。等红灯的时候,对面门口已经站了两个人,一个陈稳不认识,另一个是蒋辉。蒋辉朝他招了招手。

“你今天走挺早。”蒋辉说。

“嗯。”

“老梁还没到,先进去。”

二楼包间,一张大圆桌,能坐十二个人。桌上摆了一盘花生米和一盘凉拌黄瓜。空调开得很低,冷气从头顶的出风口往下吹,陈稳的肩膀凉了一下。

他挑了靠墙的位置,蒋辉在他右手边。对面那半圈还空着。

陆陆续续有人来。结算组六个人,加上做渠道对账的那个,做资金报表的那个,还有一个做营销结算的——陈稳不认识他,蒋辉认识,聊了两句,陈稳才知道这人是营销结算那边的,刚调过来,跟他们组有对接。

七点零三分,老梁推门进来,手里拎着一个塑料袋,里面装着两瓶白酒。短袖格子衬衫,领口有一块洗不掉的印子,头发比平时乱一点,像是刚睡醒。

“抱歉,来晚了。”他把酒放在桌上,“楼下超市买了点东西。”

有人起哄:“老梁你今天请客还迟到,自罚三杯。”

老梁笑了一下。主位正对着门,他把椅子拉出来,扫了一圈桌子,嘴唇动了动,是在数人头。

“都来了。”他说,“那就点菜。”

菜单传了一圈。陈稳翻了两页,点了一个蒜蓉空心菜,把菜单递出去。

老梁说:“加个剁椒鱼头,再来个辣椒炒肉。他们家的招牌。”

菜上得很快。剁椒鱼头端上来,热气散开,辣椒味冲了一下陈稳的鼻子。他吸了一下,没打喷嚏。

老梁给自己倒了一杯酒,端起来。

“来,先喝一杯。”

杯子碰了一圈。陈稳杯子里是茶。老梁那一眼扫过他的杯子,什么都没提。

“第一杯,感谢大家这十一年。”老梁说,“不对,是感谢大家在我的十一年里。”

他仰头喝了一半。

有人笑:“老梁你今天说话怎么这么文绉绉的。”

“我本来就文绉绉的,你们不知道而已。”

大家又笑。陈稳没笑。茶的苦味从舌尖蔓延到舌根。

老梁夹了一筷子鱼头,吃了一口,说:“还行,没变味。”

辣椒炒肉的辣味在后脑勺顶了一下。陈稳喝了一口水。

隔壁在划拳,声音闷闷地传过来。桌上的话题从最近的系统升级,到技术支持中心到底在哪栋楼,到老梁新带的团队有几个人。老梁边吃边答,说技术支持中心在 A 座三楼,他现在带六个人,比结算组还多一个,但大部分是新人,要重新带。

“那不就是重新带一拨人。”做渠道对账的那个人说。

“差不多。”老梁说,“但那边的东西不复杂,接入层的东西,逻辑比结算简单。”

蒋辉说:“那也不一定,接入层的坑多,数据量大了之后,什么幺蛾子都有。”

“那倒是。”老梁说。

陈稳低头吃菜。老梁说话的时候左手一直在摸杯沿,拇指沿着杯口转了一圈,又转了一圈。这个动作陈稳以前没见过。老梁十一年,喝水用搪瓷杯,从来是两只手端着,一口喝完就放下。

饭吃到一半,有人提了一个话题:老梁在恒澜十一年,最难忘的是什么。

老梁想了想,说:“最难忘?没想过。应该是某一次上线吧,三四年前,凌晨三点上线,上了四个小时,上完天都亮了。我下楼买包子,包子铺刚开门,第一笼包子还没蒸好,我等了十五分钟。那天的包子特别好吃。”

桌上安静了两秒,蒋辉说:“老梁,你这说了跟没说一样。”

“事实就是这样。”老梁说,“难忘的事情就是一些很小的事情,大的事情你记不住。”

陈稳把这句话在心里过了一遍。三四年前那次凌晨上线,日志他见过——那是结算核心链路上线的第一版,改动记录里最后一个提交人是梁栋,时间凌晨六点五十一分。他没有说出来。

老梁的第一杯喝完了,倒了第二杯。

蒋辉端着杯子过去,说:“老梁,我敬你一杯。”

两个人碰了一下杯。

蒋辉喝完,说:“老梁,我跟你说的那个事,你考虑一下。”

“什么事。”

“那个。”

蒋辉笑了一下,没说下去。老梁也没追问,把酒喝完。

陈稳不知道他们在说什么。蒋辉的表情跟刚才一样,笑着。

剁椒鱼头吃了一半,鱼骨头露出来,白森森的。辣椒油在盘底凝住了,因为空调太冷。

营销结算那个新人问了一句:“周日那个升级,你们结算那边要值守吗。”

“什么升级。”蒋辉说。

“规则引擎调度那个。通告上周就发了。”

“哦。那个跟我们没关系。”

陈稳把杯子往自己面前挪了两厘米。那个通告是今天早上八点四十七分发的,不是上周。他上午回的那封邮件里写了资源池冲突,抄送里有纪衡,六个小时没有人回。这两件事桌上没有人知道。他没有纠正“上周”,也没有提那封邮件。

老梁夹了一筷子空心菜,问:“同一个资源池?”

陈稳说:“同一个。”

“批任务几点。”

“二十三点五十。跑到一点半。”

老梁把筷子放下,嚼完了那口,说:“那你别管了。”

“为什么。”

“因为管了也是你的,出了事也是你的。”老梁重新拿起筷子,“你邮件发了?”

“发了。”

“那就够了。”

蒋辉在旁边笑了一下:“老梁你这话说的,跟你以前不一样啊。”

“我以前也这么说。”老梁说,“你们没听。”

八点四十,有人开始看手机。做渠道对账的那个人说家里小孩发烧,要先走。老梁说:“赶紧走,别耽误。”那个人说了几句客套话,走了。

又过了二十分钟,做资金报表的那个也走了,说周末要回老家。

剩下六个人。老梁,陈稳,蒋辉,营销结算那个新人,还有两个陈稳叫不出名字的——一个是结算组做测试的,一个是别的组过来串门的,陈稳不知道他为什么在。

墙上的钟九点零五分。

陈稳杯里的茶添了三次,已经淡了,颜色跟白水差不多。

老梁第二杯喝完,脸有一点红,说话还是很清楚。他靠在椅背上,点了一根烟,把烟灰缸拉到自己面前。烟雾在空调的风里被拉成一条线,然后散开。

陈稳不抽烟,但老梁抽烟的时候他从来不躲。

老梁抽了几口,把烟按灭。他提起酒瓶,晃了一下,空的。瓶底碰在桌面上,一声闷响。

“差不多了。”他说。

没有人反对。

前台报了一个数字,陈稳没听清,只听到老梁说“行”,然后是一声扫码提示音。

包间门口的走廊上,老梁从前台那边过来。

“陈稳。”

“你等一下。”

走廊里只有他们两个人,头顶的灯管有一根在闪,频率很慢。

“支援中心那边,我这边有个位置,你做不做。”

“什么位置。”

“技术岗。主要做接入层的问题排查和工具开发。不复杂,但稳定。”老梁停了停,“比结算组轻松。”

走廊尽头的窗户开着一条缝,路灯的光从缝隙里挤进来,在地上拉出一道窄窄的亮线。

“你什么时候走。”陈稳问。

“下周一正式过去。”老梁说,“但位置一直在,你什么时候想过来,跟我说一声就行。”

陈稳把折起来的那张纸从口袋里摸了一下,纸角已经被汗浸软了。他昨天在停车场听老梁说“别学我”。今天老梁在问他要不要过去,做一样的事。这两句是同一个人说的,隔了不到三十个小时。

“不急。”老梁说,“你想想。”

他拍了一下陈稳的肩膀,往楼梯口去了。

那根灯管还在闪。老梁下楼的脚步声一声一声变小,然后是一声开门,然后没有了。

楼下拐角,蒋辉站在门口刷手机。

“走了?”

“嗯。”

“你怎么回去。”

“地铁。”

“我也是。那一起。”

他们没有一起走。蒋辉接了一个电话,走在前面,声音压得很低。陈稳跟在后面,听到两个词,一个是“评估”,一个是“他那边”。到地铁站口,蒋辉挂了电话。

“那我先走了,十号线。”

“好。”

蒋辉背着双肩包,节奏很快,没有回头。

何晚七点发过一条:“好的,别喝太多。”

他回:“结束了。”

没有回复。他把手机放回口袋,进站。

站台上等车的人不多。轨道另一侧的广告牌是一个房地产广告,上面写着“首付三十万,安家上海”。效果图里窗台上放了花,阳台上有一个人在看书。三十万,他账上有十九万四,房贷月供九千八。

列车进站,刹车声刺了一下他的耳膜。车厢里一个小孩在哭,三四岁,脸上全是眼泪,母亲用纸巾给他擦,说“到了到了,快到了”。小孩扭了一下,哭得更大。

车窗玻璃上反射出车厢里的样子,那个小孩,那个女人,他自己。他的脸在玻璃上有些模糊,因为隧道里的灯光一直在变。

老梁那个位置:接入层问题排查和工具开发,不复杂,但稳定。比结算组轻松。

老梁昨天在停车场说的是“别学我”。

老梁的十一年,七个系统,最高绩效 B+ 一次。

老梁今天摸杯沿那个动作,一圈,又一圈。

播报声:下一站,到站请准备下车。

四站,换乘,再两站。

出站的时候手机震了一下。何晚:“到家了?”

他打了一个“刚到”,删了,重新打了一个“快了”,发送。

小区门口保安在岗亭里刷手机,屏幕的光在他脸上亮一下暗一下,没有抬头。

屋里灯是黑的。他没开灯。窗外的路灯透过窗帘的缝隙,在天花板上投出一道细长的光——那道光正好压在那条裂缝上,物业说不影响结构。

冰箱里的水是冰的,瓶身上凝了一层水珠。他喝了一口,凉度从喉咙一直往下走。水放在茶几上,没再喝。

备忘录里那条待办还在:“时间窗跨天校验。v2。”他没有划掉,也没有改。

通讯录里老梁的号码,点进去,退出来。

手机放在茶几上,屏幕朝上。路灯照在屏幕上,反射出一小块光,像一枚硬币。

那枚硬币一样的光在茶几上停了很久。


书房。跨天时间窗那个 MR 还是空的状态。

他改了校验器的逻辑,加了对跨天段的支持,改了配置类的注释,跑单测,全绿。二十六例。

提交 MR。commit message 一行:

feat: 窗口配置支持跨天时间窗(22:00-02:00)

推送。

键盘的声音在房间里响了两秒,然后安静下来。

电脑右下角二十三点四十七分。那封资源池冲突的邮件,仍然没有任何人回复。周日凌晨还有三十个小时。

对面那栋楼大部分窗户都是黑的。只有一扇窗还亮着灯,黄色的,窗帘半拉着,看不清里面是什么。那扇窗他看了十一个月。

他把窗帘的缝隙拉大了一点。

对面那扇窗的灯,灭了。

窗玻璃上只剩下他自己的脸,和身后书房里没关的屏幕。


← 第三章 转岗 · 目录 · 第五章 新规矩 →