资讯专栏INFORMATION COLUMN

小电商的延时队列设计概要

nifhlheimr / 2121人阅读

摘要:基于实现的延迟队列应用场景未支付订单定时取消关闭检测退款的订单的第三方退款状态余额支付回调通知概率订单天后自动评价设计实现传统实现使用的特性实现,对普通的传统扫表优化设计目标可靠性延迟队列保证被消费一次系统结构及实现要点关闭未支付的订单检测

基于Redis实现的延迟队列
应用场景

未支付订单定时取消关闭

检测退款的订单的第三方退款状态

余额支付回调(通知概率=2n+n)

订单15天后自动评价

......

设计实现 传统实现

使用redis的特性实现,对普通的传统扫表优化

设计目标

可靠性:延迟队列保证被消费一次

系统结构及实现要点

job(json{uuid,job_id,job_name,job_data})

关闭未支付的订单

检测第三方退款状态

余额支付回调

延迟队列(redis的zset)

结构:score:过期时间戳;value:job_id

轮询延迟队列,将分发到各个消息队列

value = zrangebyscore(key, 0,now_time, start=0, num=1)

如果value空值,则sleep(1)

如果value非空,则取出value,result = zrem(key, value)

如果result为真,则rpush相关的队列

执行消息队列(reidis的list)

关闭未支付的订单

检测第三方退款状态

余额支付回调

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/29935.html

相关文章

  • 限时订单实现方案(DelayQueue、ActiveMq)

    摘要:一在各种电商网站下订单后会保留一个时间段,时间段内未支付则自动将订单状态设置为已过期。并修改这些数据的状态为已过期。因此以上方式实际开发中基本不予采用。时间到期了才会发送这条消息到消息队列中。 一、在各种电商网站下订单后会保留一个时间段,时间段内未支付则自动将订单状态设置为已过期。(原文链接 ) showImg(https://segmentfault.com/img/bVbv9BX?...

    hosition 评论0 收藏0
  • vivo统一告警平台设计与实践

    摘要:告警当一个问题通过告警系统将消息以短信电话邮件等方式告知给用户时,我们称之为一条告警。图统一告警系统结构图告警收敛对于告警平台每天会产生数以万计的告警,这些告警对于运维或开发人员都需要去分析甄别优先级并处理故障。 一、背景一套监控系统检测和告警是密不可分的,检测用来发现异常,告警用来将问题信息发送给相应的人。v...

    Rocko 评论0 收藏0
  • 【最全】Java 进阶面试总结

    摘要:这里有一份面试题相关总结,涉及高并发分布式高可用相关知识点,在此分享给大家,希望大家能拿到一份理想的知识点会陆续更新在上,觉得还算凑和的话可以关注一下噢高并发架构消息队列为什么使用消息队列消息队列有什么优点和缺点都有什么优点和缺点如何保证消 这里有一份面试题相关总结,涉及高并发、分布式、高可用相关知识点,在此分享给大家,希望大家能拿到一份理想的 Offer! 知识点会陆续更新在 Git...

    nifhlheimr 评论0 收藏0
  • 软件测试理论

    摘要:软件测试是为了降低存在缺陷的可能性,即便是没有找到缺陷,也不能证明软件是完美的。软件测试中存在原则的缺陷发现在的模块中。软件测试不仅是找出缺陷,同时也需要确认软件是否满足需求。 4.1软件缺陷定义 软件缺陷就是通常说的bug,它是指在软件中存在的影响 *软件未达到产品说明书标明的功能, *软...

    刘永祥 评论0 收藏0
  • “大促”背后技术 | 当我们说促销时候,我们在谈什么?

    摘要:郭理靖表示,在京东商城的实践中,针对线上系统选择构建两个机房,分别是生产环境以及在灾备环境。在监控引擎方面,京东云的尝试也是比较细致的,其中包括监控服务报警服务等。进一步,根据不同的报警,我们可以定位到 showImg(https://segmentfault.com/img/bVbtNqp?w=688&h=113); showImg(https://segmentfault.com/...

    Sike 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<