The present invention provides a highly efficient method and system capable of avoiding repeated access to unique identifiers in order to solve the problems in the prior art. Including information acquisition method, the invention of: obtaining a plurality of state is a unique identifier is not used in the queue buffer from the database, and then the multi state is a unique identifier unused state changes for pre occupation; according to a unique identifier number of external request target state from the queue buffer is pre occupied according to the state; target number is a unique identifier of the target information and then generate pre occupied output, and the target state number is a unique identifier pre occupied state change has been in use for.
【技术实现步骤摘要】
本专利技术涉及计算机网络以及计算机软件
,特别地涉及一种获取信息的方法和系统。
技术介绍
现实生活中经常会有在高并发环境下需要获取非重复的唯一识别符的场景。例如:用户到手机运营商网店去办理新的手机号码,手机号码即唯一识别符。购买新车辆后需要在交通局上车牌号,车牌号即唯一识别符。电子商务中商家需要为订单开具发票,发票的相关信息中发票号码即唯一识别符。下面以开具发票为例做详细介绍。目前发票系统开具发票使用流程是:首先通过系统的发票导入功能导入购买的、空白的发票,然后各个开票人员通过不同的开票功能,获取未使用的发票并进行开票。具体地:目前发票系统在开票之前,直接查询数据库,获取发票状态为“未使用”的最小的发票,然后进行开票,开票完成后更新此张发票的发票状态为“已使用”。上述现有技术至少存在如下缺陷。1.数据库中存在大量不同状态、不同内容的发票,并且数据量仍在持续的狂猛增长中,因此查询“未使用”状态的最小发票的效率会越来越低,严重影响发票开具的效率,增加了开票的人力资源消耗,甚至导致客户的投诉。2.在大量开具发票的情况下,如此慢且并发量大的查询会对数据库造成特别大 ...
【技术保护点】
一种获取信息的方法,其特征在于,包括:从数据库批量获取多个状态为未使用的唯一识别符放入队列式缓存,并且将所述多个状态为未使用的唯一识别符的状态更改为预占用;根据外部请求从所述队列式缓存中获取目标数量的状态为预占用的唯一识别符;根据所述目标数量的状态为预占用的唯一识别符生成目标信息然后输出,并且将所述目标数量的状态为预占用的唯一识别符的状态更改为已使用。
【技术特征摘要】
1.一种获取信息的方法,其特征在于,包括:从数据库批量获取多个状态为未使用的唯一识别符放入队列式缓存,并且将所述多个状态为未使用的唯一识别符的状态更改为预占用;根据外部请求从所述队列式缓存中获取目标数量的状态为预占用的唯一识别符;根据所述目标数量的状态为预占用的唯一识别符生成目标信息然后输出,并且将所述目标数量的状态为预占用的唯一识别符的状态更改为已使用。2.根据权利要求1所述的获取信息的方法,其特征在于,所述从数据库批量获取多个状态为未使用的唯一识别符放入队列式缓存的步骤包括:从数据库定时地批量获取多个状态为未使用的唯一识别符然后放入队列式缓存。3.根据权利要求1所述的获取信息的方法,其特征在于,所述从数据库批量获取多个状态为未使用的唯一识别符放入队列式缓存,并且将所述多个状态为未使用的唯一识别符的状态更改为预占用的步骤包括:利用缓存锁确认当前无并发任务;判断若当前队列式缓存中的状态为预占用的所述唯一识别符的数量小于预设数值M,则从所述数据库中的所有状态为未使用的唯一识别符中选取M个状态为未使用的唯一识别符然后放入队列式缓存并且将这M个唯一识别符的状态更改为预占用;结束所述缓存锁。4.根据权利要求3所述的获取信息的方法,其特征在于,所述根据外部请求从所述队列式缓存中获取目标数量的状态为预占用的唯一
\t识别符的步骤包括:步骤B1:根据所述外部请求判断当前所述队列式缓存中的状态为预占用的唯一识别符的数量X是否大于等于目标数量Y;步骤B2:若X≥Y,则从所述队列式缓存中获取Y个状态为预占用的唯一识别符;步骤B3:若X<Y,则利用缓存锁确认当前无并发任务,然后从所述数据库中获取所述M个状态为未使用的唯一识别符放入所述队列式缓存并且将这M个唯一识别符的状态更改为预占用,然后结束缓存锁...
【专利技术属性】
技术研发人员:马文军,
申请(专利权)人:北京京东尚科信息技术有限公司,北京京东世纪贸易有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。