[发明专利]一种处理业务实体中增量信息的方法及装置有效
申请号: | 201710854922.2 | 申请日: | 2017-09-20 |
公开(公告)号: | CN107678856B | 公开(公告)日: | 2022-04-05 |
发明(设计)人: | 孙迁;叶国华;姜甲东;杨念磊;刘发亮 | 申请(专利权)人: | 苏宁易购集团股份有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50;G06F8/658 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 210000 江苏省*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 处理 业务 实体 增量 信息 方法 装置 | ||
1.一种处理业务实体中增量信息的方法,其特征在于,包括:
读取业务实体的主键,并根据所读取的主键标记对应所述业务实体的队列;
当检测到所述业务实体产生增量信息时,将所产生的增量信息导入对应所述业务实体的队列;
向所述对应所述业务实体的队列分配线程资源,并依次处理所述对应所述业务实体的队列中的增量信息,其中,所述对应所述业务实体的队列与分配线程为一一对应关系;
其中,一个订单作为一个业务实体,每个订单的id作为业务实体的主键;
在业务系统读取到一个业务实体的主键后,从队列池中提取一项空白的队列,并通过所读取的业务实体的主键命名该空白的队列;
在初始化调度线程后,还包括:
第1步、调度线程从待处理集合中取出一个待处理的业务实体的主键,分配队列后进行加锁,成功后转第2步,否则重复执行第1步;
第2步、将主键写入处理中集合,成功后转第3步,失败后转第9步;
第3步、从队列头部读取一个增量信息,成功后转第4步,否则转第9步;
第4步、判断读取到的增量信息是否为空,不为空转第5步,否则转第9步;
第5步、调用目标数据库的接口保存或更新;
第6步、从队列头部删除一个元素;
第7步、继续从队列头部读取下一个增量信息,如果有则转第3步,否则转第8步;
第8步、从处理集合中删除该实体主键;
第9步、对实体主键进行解锁;
还包括:
当读取业务实体的主键后,从缓存中的队列资源池中获取空闲的队列;
在根据所读取的主键标记对应所述业务实体的队列之后,对所述业务实体的队列加锁,其中,被加锁的队列屏蔽命名的主键以外业务实体所产生的信息;
所述将所产生的增量信息导入对应所述业务实体的队列,包括:
确定产生增量信息的业务实体的主键;
根据所确定的主键在缓存中查询所述对应所述业务实体的队列;
将所产生的增量信息,按照时间顺序存入所述对应所述业务实体的队列;
所述向所述对应所述业务实体的队列分配线程资源,包括:
从所述队列资源池中,获取已被加锁的队列;
向所获取的且被加锁的队列分配线程资源;
所述依次处理所述对应所述业务实体的队列中的增量信息,包括:
按照从所述对应所述业务实体的队列的头部至尾部的顺序,依次提取增量信息;
每一项增量信息被提取时,确定被提取的增量信息的目标接口,并调用所述目标接口保存或更新所述被提取的增量信息,其中,所述目标接口指向数据库中的指定存储区域;
当所述对应所述业务实体的队列中的增量信息被处理完毕后,解锁所述对应所述业务实体的队列,并删除标记所述对应所述业务实体的队列的主键。
2.一种处理业务实体中增量信息的装置,其特征在于,包括:
预处理模块,用于读取业务实体的主键,并根据所读取的主键标记对应所述业务实体的队列;
分析模块,用于当检测到所述业务实体产生增量信息时,将所产生的增量信息导入对应所述业务实体的队列;
分配模块,用于向所述对应所述业务实体的队列分配线程资源;
处理模块,用于依次处理所述对应所述业务实体的队列中的增量信息,其中,所述对应所述业务实体的队列与分配线程为一一对应关系;
其中,一个订单作为一个业务实体,每个订单的id作为业务实体的主键;
在业务系统读取到一个业务实体的主键后,从队列池中提取一项空白的队列,并通过所读取的业务实体的主键命名该空白的队列;
在初始化调度线程后,还包括:
第1步、调度线程从待处理集合中取出一个待处理的业务实体的主键,分配队列后进行加锁,成功后转第2步,否则重复执行第1步;
第2步、将主键写入处理中集合,成功后转第3步,失败后转第9步;
第3步、从队列头部读取一个增量信息,成功后转第4步,否则转第9步;
第4步、判断读取到的增量信息是否为空,不为空转第5步,否则转第9步;
第5步、调用目标数据库的接口保存或更新;
第6步、从队列头部删除一个元素;
第7步、继续从队列头部读取下一个增量信息,如果有则转第3步,否则转第8步;
第8步、从处理集合中删除该实体主键;
第9步、对实体主键进行解锁;
还包括:
锁定模块,用于当读取业务实体的主键后,从缓存中的队列资源池中获取空闲的队列;在根据所读取的主键标记对应所述业务实体的队列之后,对所述业务实体的队列加锁,其中,被加锁的队列屏蔽命名的主键以外业务实体所产生的信息;
所述分析模块,具体用于确定产生增量信息的业务实体的主键;并根据所确定的主键在缓存中查询所述对应所述业务实体的队列;再将所产生的增量信息,按照时间顺序存入所述对应所述业务实体的队列;
所述分配模块,具体用于从所述队列资源池中,获取已被加锁的队列;并向所获取的且被加锁的队列分配线程资源;
所述处理模块,具体用于按照从所述对应所述业务实体的队列的头部至尾部的顺序,依次提取增量信息;在每一项增量信息被提取时,确定被提取的增量信息的目标接口,并调用所述目标接口保存或更新所述被提取的增量信息,其中,所述目标接口指向数据库中的指定存储区域;当所述对应所述业务实体的队列中的增量信息被处理完毕后,解锁所述对应所述业务实体的队列,并删除标记所述对应所述业务实体的队列的主键。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于苏宁易购集团股份有限公司,未经苏宁易购集团股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710854922.2/1.html,转载请声明来源钻瓜专利网。