php延时队列处理订单过程,使用redis延迟队列实现订单过期

可以基于redis的有序集合实现延迟队列,比如某个时间给某个用户发短信,订单过期处理,等等。。。这里说一下基于延迟队列实现订单过期,只说思路,不会给出具体的实现代码

前言

需要对redis的有序集合有一个基本的认识,包括但不限于熟练掌握和使用有序集合的相关操作命令

基本思路

1、订单下单成功,则 zadd key score value

其中key是固定值, 比如说是:orderset

score 是过期的时间戳值,比如说:time() + 10 表示当前下订单的时间,10秒后过期。具体自己设置即可

value 是具体的订单号

2、使用一个脚本或者一个自定义进程轮询redis中的orderset,获取orderset有序集合中过期的订单号(一般是使用redis的 zrangebyscore 命令获取有序集合中的订单数据),然后修改数据库中的订单为已过期,同时将该订单号从有序集合中移除掉(使用redis的 zrem 命令移除有序集合中的元素)。这是使用延时(迟)队列实现订单过期的一个通用大致的基本思路,更具体的根据自身业务情况进行扩展即可。

尾声

上面有部分代码是 使用了 世界上最好的编程语言(PHP) 写的。

你是我温暖的手套,冰冷的啤酒,带着阳光味道的衬衫,(和)日复一日的梦想    ----》【恋爱的犀牛】

声明:禁止任何非法用途使用,凡因违规使用而引起的任何法律纠纷,本站概不负责。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值