客服说:订单创建时间显示成了 1970 年 5 月 14 号早上,客服群里转过来一张用户截图,订单详情里的创建时间是 1970-01-01 08:00:00。我第一反应是数据库存了 0,查了一下,数据库里的时间戳完全正常。 那就是显示的时候格式化错了。去看那段代码: @Service public
优惠券金额半夜自己变了 4 月 27 号凌晨一点,我被电话叫醒。客服说有用户投诉:领的 20 元券,下单时变成 5 元了。我爬起来查数据库,发现那批用户券的金额字段确实从 20 变成了 5,而且更新时间不是操作时间。 翻代码的时候找到了这段: // 从配置里取出默认的券模板 CouponTempla
导出功能上线,CPU 直接干到 780% 新做的对账单导出上线第一天,监控图上 CPU 从 15% 一条直线拉到 780%(8 核机器)。同一个时间点 Full GC 频率从每小时 2 次变成每分钟 30 多次。导出的文件也就 4MB 大小,不至于。 我用 jstack 抓了几把线程,大量线程停在这
测试提了个单:0.06 的账对不上 入职第三个月,我接手了个结算的小需求。上线第二天测试同学甩过来一张截图,说订单金额 0.06 元的对账差了 1 分钱。我当时还嘴硬:"double 怎么可能算错?"然后自己跑了一遍。 System.out.println(0.1 + 0.2); //
一段编译不过的代码 上周写了个把 List<Integer> 拷到 List<Number> 的工具方法,编译直接红了。我当时第一反应是:Integer 不是 Number 的子类吗,这也不行? List<Integer> ints = Arrays.asList(1, 2, 3); List<Nu