当前位置: 首页 > 后端技术 > PHP

小电商延迟队列设计大纲

时间:2023-03-29 21:58:15 PHP

基于Redis的延迟队列应用场景未支付订单定时取消关闭检测退款第三方退款状态余额支付回调(通知概率=2n+n)订单15天后自动评估...利用redis的特性设计实现传统实现,针对普通传统表扫描优化设计目标可靠性:延迟队列保证一次性消费。系统结构及实现要点job(json{uuid,job_id,job_name,job_data})关闭未支付订单检测第三方退款状态余额支付回调延迟队列(rediszset)结构:score:过期时间戳;value:job_id轮询延迟队列,会分发到各个消息队列value=zrangebyscore(key,0,now_time,start=0,num=1)如果值为空,则sleep(1)如果值不为空,然后取出value,result=zrem(key,value)如果结果为真,则rpush相关队列执行消息队列(reidis列表)关闭未支付订单检测第三方退款状态余额支付回调