阿里二面:如何实现订单超时15分钟未支付自动取消?面试被问好多了遍了,被问麻了。。
荒崎绝奈:
做一个公共队列把所有未支付订单放进去,如果已支付就移除出队列,
每分钟扫一遍队列,超时的就给他取消然后移除队列。
如果你嫌时间不够准确,就把这个队列以时间顺序排序,每秒查一次第一条,如果第一条超时就移除并且查第二条,没超时就等下一秒我再问问。
如果怕队列里数据太多,你可以多做几个一样功能的队列然后看哪个比较闲就插入哪个。
【回复】我还有个懒办法,客户点开页面的时候判断是不是超时就行了,客户不点的情况下除非已经没货了否则不管是不是超时。
科技猎手 程序员 编程 订单超时 订单未支付 面试 java 编程开发 Java面试 科技猎手2024新品出击