redis实现延迟队列
延迟队列是指把当前要做的事情,往后推迟一段时间再做。延迟队列的常见的使用场景有以下几种:
- 在购物平台上下单,如果订单超过一定的时间后没有付款,订单会自动取消
- 打车的时候,如果在规定的时间内,没有司机接单,那么订单会被取消
- 点外卖时,如果商家在规定的时间没有接单,就会自动取消订单
redis是用有序集合的方式来实现延迟消息队列的,有序集合有一个Score属性可以储存延迟的时间
工作原理:使用zadd score1 value1 命令可以一直往内存中生产消息。再利用zrangebyscore查询符合条件的所有待处理的任务,通过循环执行队列任务即可
...大约 9 分钟