[发明专利]一种基于缓存有序集合实现延时队列的方法在审

专利信息
申请号: 202111464807.7 申请日: 2021-12-02
公开(公告)号: CN114385725A 公开(公告)日: 2022-04-22
发明(设计)人: 陈小云;杜博 申请(专利权)人: 天翼电子商务有限公司
主分类号: G06F16/25 分类号: G06F16/25;G06F16/2455;G06F9/46;G06F11/14
代理公司: 暂无信息 代理人: 暂无信息
地址: 102200 北京市昌平*** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 基于 缓存 有序 集合 实现 延时 队列 方法
【说明书】:

发明公开了一种基于缓存有序集合实现延时队列的方法,基于redis缓存中间件具体步骤如下:key生成指定采用hash取模方式分片实现数据分片插入队列;通过zadd命令向队列中添加元素并设置score值元素过期的时间;基于Elasticjob使用zookeepr协调节点,实现数据分片;zrangebyscore key min max withscores limit offset count:返回分数min到max的成员并按照分数从小到大排序,limit是从offset开始展示几个元素。本发明完善的解决了“订单生命周期管理,商户支付结果通知”的情况,同时因为reids线程独立性,保障了分布式环境下的操作原子性;并且相较于RabbitMQ队列,基于Netty#HashedWheelTimer,其逻辑更为简单,方便应用部署。

技术领域

本发明涉及互联网支付系统领域,特别涉及一种基于缓存有序集合实现延时队列的方法。

背景技术

在支付流程中,需要将每笔订单的支付结果通知给商户系统,通知商户系统过程中可能存在超时、商户系统处理失败等问题,此时就需要系统有个支付结果通知重试机制来解决该问题。

发明内容

本发明要解决的技术问题是克服现有技术的缺陷,提供一种基于缓存有序集合实现延时队列的方法。

本发明提供了如下的技术方案:

本发明提供一种基于缓存有序集合实现延时队列的方法,包括以下步骤:

S1、通过Elasticjob向Redis的Zset有序集合插入数据:

1).通过Elasticjob使用zookeepr协调节点,实现数据分片,为每个节点分配不同的Zset,例如节点A对应zset_1,节点B对应zset_2;

2).计算插入的zset的数据score值计算公式

score=当前系统时间+延迟时间;

3).通过redis的zdd将数据插入Redis的Zset有序集合;

S2、每个节点的轮询任务通过zookeepr分片,从Redis对应的zset拉取数据:

每个节点通过zrangebyscore从zset获取数据;

zrangebyscore key min max withscores limit offset count:返回分数min到max的成员并按照分数从小到大排序,limit是从offset开始展示几个元素;

S3、每个节点在拉取到数据后,进行支付结果通知:

(1)如果通知成功,则删除掉zset的对应的元素;

(2)如果通知失败,重复步骤S1。

与现有技术相比,本发明的有益效果如下:

1.发明完善的解决了“订单生命周期管理,商户支付结果通知”的情况,同时因为reids线程独立性,保障了分布式环境下的操作原子性;

2.并且相较于RabbitMQ队列,基于Netty#HashedWheelTimer,其逻辑更为简单,方便应用部署。

附图说明

附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:

图1是本发明的流程图;

图2是本发明的交互图。

具体实施方式

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于天翼电子商务有限公司,未经天翼电子商务有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/202111464807.7/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top