写在开头:昨天一位 3 年经验的兄弟找我哭诉,说字节二面挂得莫名其妙。 面试官问了一个很经典的业务题:“淘宝/美团的订单,如果用户下单 30 分钟没支付,怎么自动取消订单?”他想都没想直接回答:“简单啊,写个定时任务(Schedule),每分钟去数据库捞一次,把超过 30 分钟的订单查出来,状态改成取消不就行了?”面试官听完,连问了三个问题:“如果数据库里有 1000 万条未支付订单,你每一分钟全表扫一次?数据库不崩吗?”“你每分钟扫一次,那用户第 1 分钟下单,岂不是可能第 31 分 59 秒才被取消?延迟这么大能接受吗?”“如果你的定时任务机器挂了,或者任务执行时间超过了 1 分钟,这期间...