后台最阴的坑不是并发也不是内存泄漏,是时间和时区。看着不起眼,暴雷全在生产环境,而且一般挑大半夜炸。
库里存了一批不带时区的时间戳,当初图省事直接 datetime.now() 塞进去。后来机房从国内迁到海外节点,所有历史记录集体偏移8小时,对账对到怀疑人生。老数据已经脏了,新数据又得走新规则,迁移脚本写起来比想的麻烦。
还有用本地日期拼缓存 key 的,比如"20240101_user_xxx"。跨零点那一下 key 直接变,缓存命中率断崖,瞬时流量全打到库上。时区再错一点,零点提前或推后八小时,雪上加霜。
前端以为 new Date() 就是用户时间,其实它跟着浏览器时区跑。同一个订单,国内外看到俩时间,客服天天被问爆。
现在能存 UTC 的都存了,那批老数据至今没人敢碰,谁动谁倒霉……