
我使用延迟队列实现商品的竞拍成交功能
背景我们平时开发可能要求实现这样的需求:用户可以在有效的时间内进行商品竞拍,当有效时间过了之后,取竞拍价最高的用户成交。我们一般可以使用定时任务每5s定时扫描数据库,获取有效时间大于当前时间的商品列表,然后取每个商品中竞价最高的用户存入商品成交表中。商品成交如果使用定时任务,这里会有一个问题,定时任务每5s执行一次,就会查询一次数据库,这样对系统,对数据库压力会有一定的压力,并且时间精确度不是很高。个人觉得不是最好的方法。对于上面的需求,我决定使用延迟对列实现。实现的逻辑为:当系统启动时,扫描已