万圣节没有狂欢:我在给 3000 个客户写自动化邮件

万圣节没有狂欢,我在给 3000 个客户写自动化邮件。团队里那俩小孩下午就溜了,说要去三里屯,我连骂人的力气都没了。后台的邮件队列卡在 2874 条,一动不动,客户催单的微信消息像丧尸围城一样往上顶。我瘫在椅子上,脑子里就一个念头:当初招人是为了解放自己,现在倒好,我成了所有人的爹。

问题出在自研的订单同步系统上。为了省那点 SaaS 年费,我带着前端的阿杰用 Python + Requests 硬怼了一个。平时跑得挺好,今天不知道触发了对方平台的什么风控策略,IP 被暂时封了。日志里全是 403,订单状态更新不了,触发邮件的逻辑自然就断了。阿杰在电话里支支吾吾,说可能是爬虫频率太高,没做随机延时和 User-Agent 轮换。我听着火直往天灵盖冲,当初 code review 的时候我明明提过要加代理池和错误重试机制,他说“先跑起来再说”。现在好了,跑死了。

客服手机在我这儿震得发烫。我不得不切出 IDE,用个人微信一个个回:“亲,系统正在升级,马上就好。” 打字打得手指发麻。这谎撒得我自己都心虚。更崩溃的是运维层面的问题——我得手动登录服务器,检查 Celery worker 的状态,发现有两个进程因为内存泄漏早就僵死了。重启服务,清空队列,还得把卡住的 2874 封邮件手动触发重发。不能一股脑全发,得分批,不然自己的 SMTP 服务商也得把我拉黑。

我一边在服务器上敲命令行,一边用手机回消息,电脑上还开着 PyCharm 紧急修改爬虫代码。那种分裂感,就像同时在下三盘棋,而且每盘都快输了。我加了代理,把请求间隔从 0.5 秒调到 2 秒,加了指数退避的重试逻辑。改完,部署,测试。看着日志重新开始滚动,第一封成功邮件发出去的时候,我后背全是冷汗。

这事给我最大的毒打,不是技术问题,是沟通成本。我花了将近四十分钟在微信群里安抚客户,解释,道歉。如果一开始就有完善的自动化通知系统,在故障发生的第一时间,就能自动给受影响客户发送一条“系统延迟告知”,而不是等我发现并手动去撒那个拙劣的谎。这四十分钟,我本可以专注在修复代码上。

所以今晚,我坐在这里,不是写邮件,是在写“沟通自动化”的脚本。用 Twilio 的 API 对接微信模板消息(当时还能这么玩),用数据库触发器关联订单状态和消息模板,把“系统异常”、“处理延迟”、“恢复通知”这些场景全部预案化。我要让机器学会替我说话,在我搞不定机器的时候,至少让机器告诉用户“发生了什么”。团队是指望不上了,他们的责任心撑不起这套系统的复杂度。我又回到了独狼状态,但这次,我要带着自动化武器回来。身体很累,但脑子异常清醒:所谓管理,在早期就是给自己找一堆爹。而超级个体的终极形态,是先让自己成为系统的管理员,而不是人的管理员。

© 版权声明
THE END
喜欢就支持一下吧
点赞87 分享