[发明专利]用于向业务分配编号的方法和装置有效
申请号: | 201710665501.5 | 申请日: | 2017-08-04 |
公开(公告)号: | CN109388626B | 公开(公告)日: | 2023-01-31 |
发明(设计)人: | 李亮;杜强;王席敏 | 申请(专利权)人: | 北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司 |
主分类号: | G06F16/20 | 分类号: | G06F16/20;G06F9/54 |
代理公司: | 中科专利商标代理有限责任公司 11021 | 代理人: | 杨静 |
地址: | 100195 北京市海淀区杏石口路6*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 业务 分配 编号 方法 装置 | ||
1.一种用于向业务分配编号的方法,包括:
接收用于向业务分配编号的请求,所述请求中包括所述业务的类型,其中,当根据所述业务的类型确定存在与所述业务相对应的缓存队列时,向所述业务分配所述缓存队列中的编号,并且其中,当根据所述业务的类型确定不存在与所述业务相对应的缓存队列时,确定所述业务具有新的业务类型,对与所述业务相对应的数字编号初始值、前缀和从数据库获取的号段长度进行合法性验证,并且当所述合法性验证通过时,将所述数字编号初始值、所述前缀和所述号段长度与所述业务的类型相关联地存储在所述数据库中;
监听包含在用于向所述业务分配编号的缓存队列中的剩余编号的数量;
当所述数量小于预定阈值时,向数据库请求号段编号,所述预定阈值通过在业务接入时评估每分钟需要编号的个数来控制;
从所述数据库获取针对所述缓存队列的行锁;
当成功地获取到针对所述缓存队列的行锁时,从所述数据库获取从当前待分配的起始编号开始的预定长度的号段,并且将所述当前待分配的起始编号更新为所获取的号段中的最后一个编号的下一个编号,
当未能成功地获取针对所述缓存队列的行锁时,重复执行获取行锁的步骤,直到成功地获取到针对所述缓存队列的行锁为止;
利用所述号段和标识所述业务的类型的前缀确定所有编号;以及
将所确定的所有编号作为所请求的号段编号写入所述缓存队列中。
2.根据权利要求1所述的方法,其中,在将所述数字编号初始值、所述前缀和所述号段长度存储在所述数据库中之后,所述方法还包括:
每隔预定的时间对所述数据库进行扫描,当扫描到所述新的业务类型时,根据所述数字编号初始值、所述前缀和所述号段长度确定针对所述业务的编号,创建与所述业务相对应的缓存队列,并且将所述编号初始化到所创建的缓存队列中。
3.一种用于向业务分配编号的装置,包括:
接收模块,被配置为接收用于向业务分配编号的请求,所述请求中包括所述业务的类型;
分配模块,被配置为当根据所述业务的类型确定存在与所述业务相对应的缓存队列时,向所述业务分配所述缓存队列中的编号;
第一处理模块,被配置为:当根据所述业务的类型确定不存在与所述业务相对应的缓存队列时,确定所述业务具有新的业务类型,对与所述业务相对应的数字编号初始值、前缀和从数据库获取的号段长度进行合法性验证,并且当所述合法性验证通过时,将所述数字编号初始值、所述前缀和所述号段长度与所述业务的类型相关联地存储在所述数据库中;
监听模块,被配置为监听包含在用于向所述业务分配编号的缓存队列中的剩余编号的数量;
请求模块,被配置为当所述数量小于预定阈值时,向数据库请求号段编号,所述预定阈值通过在业务接入时评估每分钟需要编号的个数来控制;
第一获取模块,被配置为从所述数据库获取针对所述缓存队列的行锁;
第二获取模块,被配置为当成功地获取到针对所述缓存队列的行锁时,从所述数据库获取从当前待分配的起始编号开始的预定长度的号段,并且将所述当前待分配的起始编号更新为所获取的号段中的最后一个编号的下一个编号,
当未能成功地获取针对所述缓存队列的行锁时,重复执行获取行锁的步骤,直到成功地获取到针对所述缓存队列的行锁为止;
确定模块,被配置为利用所述号段和标识所述业务的类型的前缀确定所有编号;以及
写入模块,被配置为将所确定的所有编号作为所请求的号段编号写入所述缓存队列中。
4.根据权利要求3所述的装置,还包括:第二处理模块,被配置为在将所述数字编号初始值、所述前缀和所述号段长度存储在所述数据库中之后,每隔预定的时间对所述数据库进行扫描,当扫描到所述新的业务类型时,根据所述数字编号初始值、所述前缀和所述号段长度确定针对所述业务的编号,创建与所述业务相对应的缓存队列,并且将所述编号初始化到所创建的缓存队列中。
5.一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行根据权利要求1所述的方法。
6.一种用于向业务分配编号的服务器,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现根据权利要求1所述的方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司,未经北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710665501.5/1.html,转载请声明来源钻瓜专利网。