Spring Boot基于Redisson实现延时订单处理

【Spring Boot基于Redisson实现延时订单处理】在之前的系统,用户主要是经销商,用户数不多,数据量也不大,便采用了最简单的方式-定时扫描表,这种方式确实简单粗暴,如果要实时性较高,那么就只有频繁扫描表,这样就增加了数据库的压力,如果要减轻数据库压力,那么就只有降低扫描频率,这样就出现延迟很高 。这次的新系统的用户和数据量较之前的系统就要多一些了,如果再使用之前的方式,不止数据库压力会很大,用户体验也不好 。
现在,有很多支持延迟消息的开源消息队列,如:beanstalkd、rabbitmq、rocketmq、nsq等,最开始,我们有想到过用消息队列来实现这种延迟消费,但是,这又增加了我们的运维成本,便暂时放弃这种方案 。因为系统有用到过Redis,当时也有想到过基于Redis的key过期事件机制来实现,但是这货有个大问题,如果消费程序重启或者挂掉期间有key过期,这部分的事件就丢失了,所以这种方式也不想 。直到某天,我在查看Redisson文档时,突然眼前一亮,看到一个关键字RDelayedQueue,这不就是延迟队列吗?正好现在系统有用到Redis,要不就试试这个家伙吧 。
引入相关包
这里我主要用到了hutool、lombok和redisson
<dependency>

    推荐阅读