CN113807760A - 库存信息处理方法、装置及可读存储介质和电子设备 - Google Patents
库存信息处理方法、装置及可读存储介质和电子设备 Download PDFInfo
- Publication number
- CN113807760A CN113807760A CN202110016457.1A CN202110016457A CN113807760A CN 113807760 A CN113807760 A CN 113807760A CN 202110016457 A CN202110016457 A CN 202110016457A CN 113807760 A CN113807760 A CN 113807760A
- Authority
- CN
- China
- Prior art keywords
- goods
- type
- value
- current
- order
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000010365 information processing Effects 0.000 title claims description 15
- 238000003672 processing method Methods 0.000 title claims description 9
- 238000000034 method Methods 0.000 claims abstract description 53
- 238000012545 processing Methods 0.000 claims abstract description 39
- 230000004044 response Effects 0.000 claims description 11
- 230000009471 action Effects 0.000 claims description 3
- 230000008569 process Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 7
- 238000004590 computer program Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/08—Logistics, e.g. warehousing, loading or distribution; Inventory or stock management
- G06Q10/087—Inventory or stock management, e.g. order filling, procurement or balancing against orders
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Economics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Finance (AREA)
- Human Resources & Organizations (AREA)
- Accounting & Taxation (AREA)
- Data Mining & Analysis (AREA)
- Development Economics (AREA)
- Computational Linguistics (AREA)
- Entrepreneurship & Innovation (AREA)
- General Engineering & Computer Science (AREA)
- Marketing (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Strategic Management (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明实施例提出库存信息处理方法、装置及可读存储介质和电子设备。方法包括:初始化并保存第一类型货物的当前库存判决值,所述当前库存判决值等于预设的最大允许库存值减去第一类型货物的当前实际库存,所述第一类型为任一类型;接收到针对第一类型货物的订单请求,所述订单请求携带请求的货物数量;查询保存的第一类型货物的当前库存判决值,将查询到的第一类型货物的当前库存判决值加上所述货物数量;判断所得到的和值是否不大于所述最大允许库存值,若是,则生成订单信息,并以所述和值更新保存的第一类型货物的当前库存判决值;否则,不生成订单信息。本发明实现了对库存信息的准确处理。
Description
技术领域
本发明涉及仓储技术领域,尤其涉及库存信息处理方法、装置及可读存储介质和电子设备。
背景技术
在仓储货物时,需要实时维护货物库存信息。目前的货物库存信息维护方法主要有如下两种:
第一种:在关系数据库中维护货物的库存信息。当接收到订单请求后,在关系数据库中查询货物的当前库存,根据订单请求的货物量更新当前库存,并生成订单信息。
该方法的缺点为:由于库存信息存储在关系数据库中,受限制于关系数据库自身的性能,无法满足高并发大流量的场景要求,且,该方法的库存扣减方式在高并发场景下会存在订单成功但是实际上却没有库存供应的风险。
第二种:在Redis数据库中维护货物的库存信息。当接收到订单请求后,在Redis数据库中查询货物的当前库存,根据订单请求的货物量对当前库存进行扣减,若扣减后的当前库存小于0,则返回订单失败响应,否则,生成订单信息。
该方法的缺点为:在订单失败时,无法准确更新库存信息,从而导致:实际上有库存但无法接受新的订单请求的情形。
发明内容
本发明实施例提出库存信息处理方法、装置及可读存储介质和电子设备,以实现对库存信息的准确处理。
本发明实施例的技术方案是这样实现的:
一种库存信息处理方法,该方法包括:
初始化并保存第一类型货物的当前库存判决值,所述当前库存判决值等于预设的最大允许库存值减去第一类型货物的当前实际库存,所述第一类型为任一类型;
接收到针对第一类型货物的订单请求,所述订单请求携带请求的货物数量;
查询保存的第一类型货物的当前库存判决值,将查询到的第一类型货物的当前库存判决值加上所述货物数量;
判断所得到的和值是否不大于所述最大允许库存值,若是,则生成订单信息,并以所述和值更新保存的第一类型货物的当前库存判决值;否则,不生成订单信息。
所述生成订单信息,并以所述和值更新保存的第一类型货物的当前库存判决值之后,进一步包括:
若订单信息生成失败,则将保存的第一类型货物的当前库存判决值减去所述货物数量,以得到的差值更新保存的第一类型货物的当前库存判决值。
所述接收到针对第一类型货物的订单请求为:接收到第一用户发来的针对第一类型货物的订单请求;
且,所述接收到针对第一类型货物的订单请求之后、查询保存的第一类型货物的当前库存判决值之前,进一步包括:
A、查询到第一类型货物当前存在订单次数限制,则查询保存的第一类型货物针对第一用户的当前订单次数判决值;
B、若查询到,则将查询到的第一类型货物针对第一用户的当前订单次数判决值加1,执行步骤C;若未查询到,则初始化并保存第一类型货物针对第一用户的当前订单次数判决值为:预设的最大允许订单次数值减去第一类型货物针对第一用户的当前订单次数限制值,然后将所述第一类型货物针对第一用户的当前订单次数判决值加1,执行步骤C;
C、判断所得到的差值是否不大于所述最大允许订单次数值,若是,则执行所述查询保存的第一类型货物的当前库存判决值的动作,并以步骤B所得到的和值更新保存的第一类型货物针对第一用户的当前订单次数判决值;否则,直接返回订单失败响应。
所述步骤C中,以步骤B所得到的和值更新保存的第一类型货物针对第一用户的当前订单次数判决值之后,进一步包括:
若订单信息生成失败,则将保存的第一类型货物针对第一用户的当前订单次数判决值减1,以所得到的差值更新保存的第一类型货物针对第一用户的当前订单次数判决值。
所述保存第一类型货物的当前库存判决值包括:将第一类型货物的当前库存判决值放入Redis缓存;
且,所述最大允许库存值为:Redis缓存支持的长整型数据的最大值;
所述查询保存的第一类型货物的当前库存判决值为:
查询Redis缓存中的第一类型货物的当前库存判决值;
所述以所述和值更新保存的第一类型货物的当前库存判决值为:
以所述和值更新Redis缓存中的第一类型货物的当前库存判决值。
所述查询保存的第一类型货物针对第一用户的当前订单次数判决值包括:
查询Redis缓存保存的第一类型货物针对第一用户的当前订单次数判决值;
且,所述最大允许订单次数值为:Redis缓存支持的长整型数据的最大值;
所述保存第一类型货物针对第一用户的当前订单次数判决值为:
将第一类型货物针对第一用户的当前订单次数判决值放入Redis缓存;
所述以步骤B所得到的和值更新保存的第一类型货物针对第一用户的当前订单次数判决值为:
以步骤B所得到的和值更新Redis缓存中的第一类型货物针对第一用户的当前订单次数判决值。
一种库存信息处理装置,该装置包括:
初始化模块,用于初始化并保存第一类型货物的当前库存判决值,所述当前库存判决值等于预设的最大允许库存值减去第一类型货物的当前实际库存,所述第一类型为任一类型;
处理模块,接收到针对第一类型货物的订单请求,所述订单请求携带货物数量;查询保存的第一类型货物的当前库存判决值,将查询到的第一类型货物的当前库存判决值加上所述货物数量;判断所得到的和值是否不大于所述最大允许库存值,若是,则生成订单信息,并以所述和值更新保存的第一类型货物的当前库存判决值;否则,不生成订单信息。
所述处理模块生成订单信息,并以所述和值更新保存的第一类型货物的当前库存判决值之后,进一步用于:
若订单信息生成失败,则将保存的第一类型货物的当前库存判决值减去所述货物数量,以得到的差值更新保存的第一类型货物的当前库存判决值。
一种非瞬时计算机可读存储介质,所述非瞬时计算机可读存储介质存储指令,所述指令在由处理器执行时使得所述处理器执行如上任一项所述的库存信息处理方法的步骤。
一种电子设备,包括如上所述的非瞬时计算机可读存储介质、以及可访问所述非瞬时计算机可读存储介质的所述处理器。
本发明实施例中,通过将每一类型货物的当前库存判决值初始化为:预设的最大允许库存值减去该类型货物的当前实际库存,当接收到针对一类型货物的订单请求时,将该类型货物的当前库存判决值加上订单请求的货物数量,若所得到的和值不大于所述最大允许库存值,生成订单信息,并以所述和值更新第一类型货物的当前库存判决值,否则,不生成订单信息,从而使得在一类货物的当前库存判决值等于最大允许库存值时,就不对当前库存判决值进行更新,也就是在一类货物的实际库存为0时,就不对实际库存进行扣减操作,从而实现了对库存信息的准确处理,避免了对货物库存的多扣或少扣操作。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例提供的库存信息处理方法流程图;
图2为本发明另一实施例提供的库存信息处理方法流程图;
图3为本发明又一实施例提供的库存信息处理方法流程图;
图4为在Redis中应用本发明实施例时,对并发订单请求的处理示意图;
图5为当图4中的订单请求A在订单信息生成失败时,进行库存回退处理的示意图;
图6为本发明又一实施例提供的库存信息处理方法流程图;
图7为本发明实施例提供的库存信息处理装置的结构示意图;
图8为本发明实施例提供的一种电子设备的示例性结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含。例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其他步骤或单元。
下面以具体实施例对本发明的技术方案进行详细说明。下面几个具体实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
本发明实施例提出一种库存信息处理方法,将每一类型货物的当前库存判决值初始化为:预设的最大允许库存值减去该类型货物的当前实际库存,当接收到针对一类型货物的订单请求时,将该类型货物的当前库存判决值加上订单请求的货物数量,若所得到的和值不大于所述最大允许库存值,生成订单信息,并以所述和值更新第一类型货物的当前库存判决值,否则,不生成订单信息,从而使得在一类货物的当前库存判决值等于最大允许库存值时,就不对当前库存判决值进行更新,也就是在一类货物的实际库存为0时,就不对实际库存进行扣减操作,从而实现了对库存信息的准确处理,避免了对货物库存的多扣或少扣操作,从而避免了实际库存不够供应订单但是却成功生成订单信息的情况,也避免了实际上有库存但却无法接受新订单的情况;且,对同一用户并没有订单次数限制。
图1为本发明一实施例提供的库存信息处理方法流程图,其具体步骤如下:
步骤101:初始化并保存第一类型货物的当前库存判决值,该当前库存判决值等于预设的最大允许库存值减去第一类型货物的当前实际库存,其中,第一类型为任一类型。
步骤102:接收到针对第一类型货物的订单请求,该订单请求携带请求的货物数量。
步骤103:查询保存的第一类型货物的当前库存判决值,将查询到的第一类型货物的当前库存判决值加上该请求的货物数量。
步骤104:判断所得到的和值是否不大于预设的最大允许库存值,若是,则生成订单信息,并以该和值更新保存的第一类型货物的当前库存判决值;否则,不生成订单信息。
应用本实施例,通过将每一类型货物的当前库存判决值初始化为:预设的最大允许库存值减去该类型货物的当前实际库存,当接收到针对一类型货物的订单请求时,将该类型货物的当前库存判决值加上订单请求的货物数量,若所得到的和值不大于所述最大允许库存值,生成订单信息,并以所述和值更新第一类型货物的当前库存判决值,否则,不生成订单信息,从而使得在一类货物的当前库存判决值等于最大允许库存值时,就不对当前库存判决值进行更新,也就是在一类货物的实际库存为0时,就不对实际库存进行扣减操作,从而实现了对库存信息的准确处理,避免了对货物库存的多扣或少扣操作。
考虑到:在实际应用中,虽然已经进入生成订单信息的过程,但是订单信息生成可能失败,此时需要将订单请求的货物数量回退,以实现库存信息的准确处理,则本发明实施例进一步给出如下优化方案:
步骤104中,生成订单信息,并以该和值更新保存的第一类型货物的当前库存判决值之后,进一步包括:若订单信息生成失败,则将保存的第一类型货物的当前库存判决值减去订单请求的货物数量,以得到的差值更新保存的第一类型货物的当前库存判决值。
在实际应用中还存在一种场景:在某段时间内,针对某类货物会对用户存在订单次数限制,针对该场景,本发明实施例给出如下解决方案:
图2为本发明另一实施例提供的库存信息处理方法流程图,其具体步骤如下:
步骤201:初始化并保存第一类型货物的当前库存判决值,该当前库存判决值等于预设的最大允许库存值减去第一类型货物的当前实际库存,其中,第一类型为任一类型。
步骤202:接收到针对第一类型货物的订单请求,该订单请求携带请求的货物数量。
步骤203:查询到第一类型货物当前存在订单次数限制,则查询保存的第一类型货物针对第一用户的当前订单次数判决值。
步骤204:若查询到,则将查询到的第一类型货物针对第一用户的当前订单次数判决值加1,执行步骤205;若未查询到,则初始化并保存第一类型货物针对第一用户的当前订单次数判决值为:预设的最大允许订单次数值减去第一类型货物针对第一用户的当前订单次数限制值,然后将所述第一类型货物针对第一用户的当前订单次数判决值加1,执行步骤205。
初始化时,第一类型货物针对第一用户的当前订单次数限制值即为第一类型货物针对第一用户的最大订单次数限制值,例如:对于第一用户,允许其对第一类型货物最多下单3次,则最大订单次数限制值就为3,此后,每下单一次,当前订单次数限制值减去1。
步骤205:判断所得到的和值是否不大于最大允许订单次数值,若是,则执行步骤206;否则,直接返回订单失败响应,本流程结束。
步骤206:以所得到的和值更新保存的第一类型货物针对第一用户的当前订单次数判决值,查询保存的第一类型货物的当前库存判决值,将查询到的第一类型货物的当前库存判决值加上该订单请求的货物数量。
步骤207:判断所得到的和值是否不大于预设的最大允许库存值,若是,则生成订单信息,并以该和值更新保存的第一类型货物的当前库存判决值;否则,不生成订单信息。
应用上述实施例,在一类型货物存在订单次数限制时,通过将该类型货物针对一用户的当前订单次数判决值初始化为:预设的最大允许订单次数值减去该类型货物针对该用户的当前订单次数限制值,当接收到该用户针对该类型货物的订单请求时,将该类型货物针对该用户的当前订单次数判决值加1,若所得到的和值不大于所述最大允许订单次数值,则继续后续库存信息处理过程,并以所述和值更新该类型货物针对该用户的当前订单次数判决值,否则,返回订单失败响应,从而使得在一类货物针对一用户的当前订单次数判决值等于最大允许订单次数值时,就不对当前订单次数判决值进行更新,也就是在一类货物针对一用户的实际订单次数限制值为0时,就不对实际订单次数限制值进行扣减操作,从而实现了对用户订单次数限制信息的准确处理,避免了对实际订单次数限制值的多扣或少扣操作。
考虑到:在实际应用中,虽然已经进入生成订单过程,但是订单信息生成可能失败,此时不仅需要将订单请求的货物数量回退给库存,还需要将用户的订单次数回退给订单次数限制值,以实现用户的订单次数限制值的准确处理,则本发明实施例进一步给出如下优化方案:
步骤207中,生成订单信息,并以所述和值更新保存的第一类型货物的当前库存判决值之后,进一步包括:若订单信息生成失败,则将保存的第一类型货物的当前库存判决值减去订单请求的货物数量,以得到的差值更新保存的第一类型货物的当前库存判决值;同时,将保存的第一类型货物针对第一用户的当前订单次数判决值减1,以所得到的差值更新保存的第一类型货物针对第一用户的当前订单次数判决值。
考虑到:Redis的高性能特点,能够很好地满足高并发大流量的场景要求。且Redis中存在数据类型的异常机制,如:对于Long Int(长整型)类型的数据,当数据值达到***允许最大值(设为Long.MAX)时,再进行增加操作,会直接返回“ERR increment or decrementwould overflow(增或减将导致溢出错误)”异常,而拒绝对该数据的增加操作,即Long Int类型的数据的最大取值不能大于Long.MAX。基于Redis的上述特点,可在Redis中应用本发明实施例,具体实现如下:
图3为本发明又一实施例提供的库存信息处理方法流程图,其具体步骤如下:
步骤301:初始化第一类型货物的当前库存判决值为Long Int类型,该当前库存判决值等于Long Int类型数据的最大值(即Long.Max)减去第一类型货物的当前实际库存;将初始化的第一类型货物的当前库存判决值放入Redis缓存。其中,第一类型为任一类型。
步骤302:接收到针对第一类型货物的订单请求,该订单请求携带请求的货物数量。
步骤303:查询Redis缓存中的第一类型货物的当前库存判决值,将查询到的第一类型货物的当前库存判决值加上该订单请求的货物数量。
步骤304:判断所得到的和值是否不大于Long.Max,若是,则生成订单信息,并以该和值更新Redis缓存中的第一类型货物的当前库存判决值,执行步骤305;否则,不生成订单信息,返回订单失败响应,本流程结束。
在Redis中,在执行完步骤303的加操作后,若***未返回“ERR increment ordecrement would overflow”,即表明加操作被允许,即和值不大于Long.Max;若***返回“ERR increment or decrement would overflow”,即表明加操作未被允许,即和值大于Long.Max。
步骤305:判断订单信息生成是否成功,若是,返回订单信息,本流程结束;否则,执行步骤306。
步骤306:将Redis缓存中的第一类型货物的当前库存判决值更新为:Redis缓存中的第一类型货物的当前库存判决值减去订单请求的货物数量。
应用上述实施例,通过利用Redis中的Long Int类型的数据的取值最大只能是Long.MAX,在等于Long.MAX时不能再对数据进行增加操作的特点,初始化一类型货物的当前库存判决值为Long Int类型,该当前库存判决值等于Long.Max减去该类型货物的当前实际库存,从而在此后收到针对该类型货物的订单请求时,将该类型货物的当前库存判决值加上订单请求的货物数量,若所得到的和值不大于Long.Max,即***未返回“ERRincrement or decrement would overflow”,则生成订单信息,并以所述和值更新该类型货物的当前库存判决值,否则,不生成订单信息,从而使得在一类货物的当前库存判决值等于Long.Max时,就不对当前库存判决值进行更新,也就是在一类货物的实际库存为0时,就不对实际库存进行扣减操作,从而实现了对库存信息的准确处理,避免了对货物库存的多扣或少扣操作,从而避免了实际库存不够供应订单但是却成功生成订单信息的情况,也避免了实际上有库存但却无法接受新订单的情况;且,对同一用户并没有订单次数限制
图4为在Redis中应用本发明实施例时,对并发订单请求的处理示意图。如图4所示,当货物X的实际库存为1时,若同时接收到针对货物X的三个订单请求A、B、C,则处理过程如下:
01:先针对订单请求A,对货物X的当前库存判决值stock_judge进行加操作,即stock_judge+1,由于货物X的实际库存为1,因此在执行加操作前,Redis缓存中货物X的stock_judge=Long.Max-1,则加操作后和值等于Long.Max,加操作成功,进行生成订单信息过程,此时,Redis缓存中的货物X的stock_judge更新为Long.Max;
02:再针对订单请求B,对货物X的stock_judge进行加操作,即stock_judge+1,则和值等于Long.Max+1,则加操作失败,返回订单失败响应,此时Redis缓存中货物X的stock_judge仍然为Long.Max;
03:再针对订单请求C,对货物X的stock_judge进行加操作,即stock_judge+1,则和值等于Long.Max+1,则加操作失败,返回订单失败响应,此时Redis缓存中货物X的stock_judge仍然为Long.Max。
可见,当货物X的实际库存变为0后,针对货物X的stock_judge加操作不再被接受,即货物X的stock_judge的取值将维持在Long.Max不变,也就是实际库存维持在0不变,从而不会造成库存多扣或少扣的情况。
图5为当图4中的订单请求A在订单信息生成失败时,进行库存回退处理的示意图。如图5所示,图4进入订单信息生成过程后,若生成失败,则需要对货物X的stock_judge进行减操作,即stock_judge-1,此时Redis缓存中货物X的stock_judge恢复为Long.Max-1,这样此后再有新的订单请求后,能够保证stock_judge的值与货物的实际库存相符,避免有实际库存但是订单失败的情况。
以下给出在针对某类货物对用户存在订单次数限制的场景中,在Redis中应用本发明实施例的实现方案:
图6为本发明又一实施例提供的库存信息处理方法流程图,其具体步骤如下:
步骤601:初始化第一类型货物的当前库存判决值为Long Int类型,该当前库存判决值等于Long Int类型数据的最大值Long.Max减去第一类型货物的当前实际库存;将初始化的第一类型货物的当前库存判决值放入Redis缓存。其中,第一类型为任一类型。
步骤602:接收到针对第一类型货物的订单请求,该订单请求携带请求的货物数量。
步骤603:查询到第一类型货物当前存在订单次数限制,则查询Redis缓存是否已存在第一类型货物针对第一用户的当前订单次数判决值,若是,执行步骤604;否则,执行步骤605。
步骤604:将查询到的第一类型货物针对第一用户的当前订单次数判决值加1,执行步骤606。
步骤605:初始化第一类型货物针对第一用户的当前订单次数判决值为Long Int类型,该第一类型货物针对第一用户的当前订单次数判决值为:Long.Max减去第一类型货物针对第一用户的当前订单次数限制值,将该第一类型货物针对第一用户的当前订单次数判决值放入Redis缓存,然后将该第一类型货物针对第一用户的当前订单次数判决值加1,执行步骤606。
初始化时,第一类型货物针对第一用户的当前订单次数限制值即为第一类型货物针对第一用户的最大订单次数限制值,例如:对于第一用户,允许其对第一类型货物最多下单3次,则最大订单次数限制值就为3,此后,每下单一次,当前订单次数限制值减去1。
若Redis缓存中不存在第一类型货物针对第一用户的当前订单次数判决值,则说明当前针对第一类型货物的订单请求是第一用户第一次发来的,则需要先执行步骤605的初始化第一类型货物针对第一用户的当前订单次数判决值的过程,初始化完成后,再对该判决值加1;若Redis缓存中已经存在第一类型货物针对第一用户的当前订单次数判决值,则说明当前针对第一类型货物的订单请求是第一用户第二次或之后发来的,则直接将已经存在的判决值加1即可。
步骤606:判断所得到的和值是否不大于Long.Max,若是,则执行步骤607;否则,直接返回订单失败响应,本流程结束。
在Redis中,在执行完步骤604或步骤605的加操作后,若***未返回“ERRincrement or decrement would overflow”,即表明加操作被允许,即和值不大于Long.Max;若***返回“ERR increment or decrement would overflow”,即表明加操作未被允许,即和值大于Long.Max。
步骤607:以所得到的和值更新Redis缓存中的第一类型货物针对第一用户的当前订单次数判决值,查询Redis缓存中的第一类型货物的当前库存判决值,将查询到的第一类型货物的当前库存判决值加上该请求的货物数量。
步骤608:判断所得到的和值是否不大于Long.Max,若是,执行步骤609;否则,不生成订单信息,返回订单失败响应,本流程结束。
步骤609:生成订单信息,并以该和值更新Redis缓存中的第一类型货物的当前库存判决值。
步骤610:判断订单信息生成是否成功,若是,返回订单信息,本流程结束;否则,执行步骤611。
步骤611:将Redis缓存中的第一类型货物的当前库存判决值更新为:Redis缓存中的第一类型货物的当前库存判决值减去订单请求的货物数量。
应用上述实施例,通过利用Redis中的Long Int类型的数据的取值最大只能是Long.MAX,在等于Long.MAX时不能再对数据进行增加操作的特点,初始化一类型货物针对一用户的当前订单次数判决值为Long Int类型,该当前订单次数判决值等于Long.MAX减去该类型货物针对该用户的当前订单次数限制值,从而在此后收到该用户针对该类型货物的订单请求时,将该类型货物针对该用户的当前订单次数判决值加1,若所得到的和值不大于Long.Max,即***未返回“ERR increment or decrement would overflow”,则继续后续库存信息处理过程,并以所述和值更新该类型货物针对该用户的当前订单次数判决值,否则,不生成订单信息,从而使得在一类货物针对一用户的当前订单次数判决值等于Long.Max时,就不响应该用户的订单请求,也就是在一类货物针对一用户的当前订单次数限制值为0时,就不响应该用户的订单请求,从而实现了对存在订单次数限制的用户的订单的准确处理。
图7为本发明实施例提供的库存信息处理装置的结构示意图,该装置主要包括:
初始化模块71,用于初始化并保存第一类型货物的当前库存判决值,该当前库存判决值等于预设的最大允许库存值减去第一类型货物的当前实际库存,其中,第一类型为任一类型。
处理模块72,接收到针对第一类型货物的订单请求,该订单请求携带货物数量;查询保存的第一类型货物的当前库存判决值,将查询到的第一类型货物的当前库存判决值加上该订单请求的货物数量;判断所得到的和值是否不大于最大允许库存值,若是,则生成订单信息,并以该和值更新保存的第一类型货物的当前库存判决值;否则,不生成订单信息。
一可选实施例中,处理模块72生成订单信息,并以该和值更新保存的第一类型货物的当前库存判决值之后,进一步用于:若订单信息生成失败,则将保存的第一类型货物的当前库存判决值减去订单请求的货物数量,以得到的差值更新保存的第一类型货物的当前库存判决值。
一可选实施例中,处理模块72接收到针对第一类型货物的订单请求为:接收到第一用户发来的针对第一类型货物的订单请求;
且,处理模块72接收到针对第一类型货物的订单请求之后、查询保存的第一类型货物的当前库存判决值之前,进一步包括:
A、查询到第一类型货物当前存在订单次数限制,则查询保存的第一类型货物针对第一用户的当前订单次数判决值;
B、若查询到,则将查询到的第一类型货物针对第一用户的当前订单次数判决值加1,执行步骤C;若未查询到,则初始化并保存第一类型货物针对第一用户的当前订单次数判决值为:预设的最大允许订单次数值减去第一类型货物针对第一用户的当前订单次数限制值,然后将该第一类型货物针对第一用户的当前订单次数判决值加1,执行步骤C;
C、判断所得到的差值是否不大于最大允许订单次数值,若是,则执行查询保存的第一类型货物的当前库存判决值的动作,并以步骤B所得到的和值更新保存的第一类型货物针对第一用户的当前订单次数判决值;否则,直接返回订单失败响应。
一可选实施例中,处理模块72在步骤C中,以步骤B所得到的和值更新保存的第一类型货物针对第一用户的当前订单次数判决值之后,进一步包括:若订单信息生成失败,则将保存的第一类型货物针对第一用户的当前订单次数判决值减1,以所得到的差值更新保存的第一类型货物针对第一用户的当前订单次数判决值。
一可选实施例中,初始化模块71保存第一类型货物的当前库存判决值包括:将第一类型货物的当前库存判决值放入Redis缓存;且,最大允许库存值为:Redis缓存支持的长整型数据的最大值;
处理模块72查询保存的第一类型货物的当前库存判决值为:查询Redis缓存中的第一类型货物的当前库存判决值;
处理模块72以该和值更新保存的第一类型货物的当前库存判决值为:以该和值更新Redis缓存中的第一类型货物的当前库存判决值。
一可选实施例中,处理模块72查询保存的第一类型货物针对第一用户的当前订单次数判决值包括:
处理模块72查询Redis缓存保存的第一类型货物针对第一用户的当前订单次数判决值;且,最大允许订单次数值为:Redis缓存支持的长整型数据的最大值;
处理模块72保存第一类型货物针对第一用户的当前订单次数判决值为:将第一类型货物针对第一用户的当前订单次数判决值放入Redis缓存;
处理模块72以步骤B所得到的和值更新保存的第一类型货物针对第一用户的当前订单次数判决值为:以步骤B所得到的和值更新Redis缓存中的第一类型货物针对第一用户的当前订单次数判决值。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储指令,所述指令在由处理器执行时可执行如上所述仓储订单的实现方法中的步骤。实际应用中,所述的计算机可读介质可以是上述实施例各设备/装置/***所包含的,也可以是单独存在,而未装配入该设备/装置/***中。其中,在计算机可读存储介质中存储指令,其存储的指令在由处理器执行时可执行如上仓储订单的实现方法中的步骤。
根据本申请公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件,或者上述的任意合适的组合,但不用于限制本申请保护的范围。在本申请公开的实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
如图8所示,本发明实施例还提供一种电子设备。如图8所示,其示出了本发明实施例所涉及的电子设备的结构示意图,具体来讲:
该电子设备可以包括一个或一个以上处理核心的处理器81、一个或一个以上计算机可读存储介质的存储器82以及存储在存储器上并可在处理器上运行的计算机程序。在执行所述存储器82的程序时,可以实现上述仓储订单的实现方法。
具体的,实际应用中,该电子设备还可以包括电源83、输入输出单元84等部件。本领域技术人员可以理解,图8中示出的电子设备的结构并不构成对该电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
处理器81是该电子设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或执行存储在存储器82内的软件程序和/或模块,以及调用存储在存储器82内的数据,执行服务器的各种功能和处理数据,从而对该电子设备进行整体监控。
存储器82可用于存储软件程序以及模块,即上述计算机可读存储介质。处理器81通过运行存储在存储器82的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器82可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序等;存储数据区可存储根据服务器的使用所创建的数据等。此外,存储器82可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器82还可以包括存储器控制器,以提供处理器81对存储器82的访问。
该电子设备还包括给各个部件供电的电源83,可以通过电源管理***与处理器81逻辑相连,从而通过电源管理***实现管理充电、放电、以及功耗管理等功能。电源83还可以包括一个或一个以上的直流或交流电源、再充电***、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
该电子设备还可包括输入输出单元84,该输入单元输出84可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。该输入单元输出84还可以用于显示由用户输入的信息或提供给用户的信息以及各种图像用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。
本申请附图中的流程图和框图,示出了按照本申请公开的各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或者代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应该注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同附图中所标准的顺序发生。例如,两个连接地表示的方框实际上可以基本并行地执行,它们有时也可以按照相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或者流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本申请中。特别地,在不脱离本申请精神和教导的情况下,本申请的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,所有这些组合和/或结合均落入本申请公开的范围。
本文中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思路,并不用于限制本申请。对于本领域的技术人员来说,可以依据本发明的思路、精神和原则,在具体实施方式及应用范围上进行改变,其所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (10)
1.一种库存信息处理方法,其特征在于,该方法包括:
初始化并保存第一类型货物的当前库存判决值,所述当前库存判决值等于预设的最大允许库存值减去第一类型货物的当前实际库存,所述第一类型为任一类型;
接收到针对第一类型货物的订单请求,所述订单请求携带请求的货物数量;
查询保存的第一类型货物的当前库存判决值,将查询到的第一类型货物的当前库存判决值加上所述货物数量;
判断所得到的和值是否不大于所述最大允许库存值,若是,则生成订单信息,并以所述和值更新保存的第一类型货物的当前库存判决值;否则,不生成订单信息。
2.根据权利要求1所述的方法,其特征在于,所述生成订单信息,并以所述和值更新保存的第一类型货物的当前库存判决值之后,进一步包括:
若订单信息生成失败,则将保存的第一类型货物的当前库存判决值减去所述货物数量,以得到的差值更新保存的第一类型货物的当前库存判决值。
3.根据权利要求1所述的方法,其特征在于,所述接收到针对第一类型货物的订单请求为:接收到第一用户发来的针对第一类型货物的订单请求;
且,所述接收到针对第一类型货物的订单请求之后、查询保存的第一类型货物的当前库存判决值之前,进一步包括:
A、查询到第一类型货物当前存在订单次数限制,则查询保存的第一类型货物针对第一用户的当前订单次数判决值;
B、若查询到,则将查询到的第一类型货物针对第一用户的当前订单次数判决值加1,执行步骤C;若未查询到,则初始化并保存第一类型货物针对第一用户的当前订单次数判决值为:预设的最大允许订单次数值减去第一类型货物针对第一用户的当前订单次数限制值,然后将所述第一类型货物针对第一用户的当前订单次数判决值加1,执行步骤C;
C、判断所得到的差值是否不大于所述最大允许订单次数值,若是,则执行所述查询保存的第一类型货物的当前库存判决值的动作,并以步骤B所得到的和值更新保存的第一类型货物针对第一用户的当前订单次数判决值;否则,直接返回订单失败响应。
4.根据权利要求3所述的方法,其特征在于,所述步骤C中,以步骤B所得到的和值更新保存的第一类型货物针对第一用户的当前订单次数判决值之后,进一步包括:
若订单信息生成失败,则将保存的第一类型货物针对第一用户的当前订单次数判决值减1,以所得到的差值更新保存的第一类型货物针对第一用户的当前订单次数判决值。
5.根据权利要求1至4任一所述的方法,其特征在于,所述保存第一类型货物的当前库存判决值包括:将第一类型货物的当前库存判决值放入Redis缓存;
且,所述最大允许库存值为:Redis缓存支持的长整型数据的最大值;
所述查询保存的第一类型货物的当前库存判决值为:
查询Redis缓存中的第一类型货物的当前库存判决值;
所述以所述和值更新保存的第一类型货物的当前库存判决值为:
以所述和值更新Redis缓存中的第一类型货物的当前库存判决值。
6.根据权利要求3或4所述的方法,其特征在于,所述查询保存的第一类型货物针对第一用户的当前订单次数判决值包括:
查询Redis缓存保存的第一类型货物针对第一用户的当前订单次数判决值;
且,所述最大允许订单次数值为:Redis缓存支持的长整型数据的最大值;
所述保存第一类型货物针对第一用户的当前订单次数判决值为:
将第一类型货物针对第一用户的当前订单次数判决值放入Redis缓存;
所述以步骤B所得到的和值更新保存的第一类型货物针对第一用户的当前订单次数判决值为:
以步骤B所得到的和值更新Redis缓存中的第一类型货物针对第一用户的当前订单次数判决值。
7.一种库存信息处理装置,其特征在于,该装置包括:
初始化模块,用于初始化并保存第一类型货物的当前库存判决值,所述当前库存判决值等于预设的最大允许库存值减去第一类型货物的当前实际库存,所述第一类型为任一类型;
处理模块,接收到针对第一类型货物的订单请求,所述订单请求携带货物数量;查询保存的第一类型货物的当前库存判决值,将查询到的第一类型货物的当前库存判决值加上所述货物数量;判断所得到的和值是否不大于所述最大允许库存值,若是,则生成订单信息,并以所述和值更新保存的第一类型货物的当前库存判决值;否则,不生成订单信息。
8.根据权利要求7所述的装置,其特征在于,所述处理模块生成订单信息,并以所述和值更新保存的第一类型货物的当前库存判决值之后,进一步用于:
若订单信息生成失败,则将保存的第一类型货物的当前库存判决值减去所述货物数量,以得到的差值更新保存的第一类型货物的当前库存判决值。
9.一种非瞬时计算机可读存储介质,所述非瞬时计算机可读存储介质存储指令,其特征在于,所述指令在由处理器执行时使得所述处理器执行如权利要求1至6中任一项所述的库存信息处理方法的步骤。
10.一种电子设备,其特征在于,包括如权利要求9所述的非瞬时计算机可读存储介质、以及可访问所述非瞬时计算机可读存储介质的所述处理器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110016457.1A CN113807760A (zh) | 2021-01-07 | 2021-01-07 | 库存信息处理方法、装置及可读存储介质和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110016457.1A CN113807760A (zh) | 2021-01-07 | 2021-01-07 | 库存信息处理方法、装置及可读存储介质和电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113807760A true CN113807760A (zh) | 2021-12-17 |
Family
ID=78892867
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110016457.1A Pending CN113807760A (zh) | 2021-01-07 | 2021-01-07 | 库存信息处理方法、装置及可读存储介质和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113807760A (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1107141A2 (de) * | 1999-12-02 | 2001-06-13 | Horst Wengert | Verfahren zum schnellen Abgeben einer Wertpapier-, Futureskontrakt- oder Warenorder und Computersystem zu diesem Zweck |
US20030233291A1 (en) * | 2002-06-13 | 2003-12-18 | Michael Hsu | System and method for managing cargo shipment |
WO2010131293A1 (ja) * | 2009-05-13 | 2010-11-18 | モノプラス株式会社 | 在庫管理サーバ |
CN105096065A (zh) * | 2014-04-16 | 2015-11-25 | 阿里巴巴集团控股有限公司 | 一种库存扣减方法和装置 |
CN108133399A (zh) * | 2016-11-30 | 2018-06-08 | 北京京东尚科信息技术有限公司 | 高并发快响应的秒杀库存精准扣减的方法、装置及*** |
CN108154323A (zh) * | 2016-12-02 | 2018-06-12 | 苏宁云商集团股份有限公司 | 一种库存的动态管理方法及*** |
WO2019047516A1 (zh) * | 2017-09-07 | 2019-03-14 | 北京京东尚科信息技术有限公司 | 信息输出方法和装置 |
US20190333011A1 (en) * | 2017-01-06 | 2019-10-31 | Alibaba Group Holding Limited | Order processing system, method, and device |
CN110888893A (zh) * | 2019-11-18 | 2020-03-17 | 湖南御家科技有限公司 | 一种基于微服务电商***的订单处理方法 |
WO2020192063A1 (zh) * | 2019-03-28 | 2020-10-01 | 苏宁云计算有限公司 | 一种基于缓存化的销售锁定方法及*** |
-
2021
- 2021-01-07 CN CN202110016457.1A patent/CN113807760A/zh active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1107141A2 (de) * | 1999-12-02 | 2001-06-13 | Horst Wengert | Verfahren zum schnellen Abgeben einer Wertpapier-, Futureskontrakt- oder Warenorder und Computersystem zu diesem Zweck |
US20030233291A1 (en) * | 2002-06-13 | 2003-12-18 | Michael Hsu | System and method for managing cargo shipment |
WO2010131293A1 (ja) * | 2009-05-13 | 2010-11-18 | モノプラス株式会社 | 在庫管理サーバ |
CN105096065A (zh) * | 2014-04-16 | 2015-11-25 | 阿里巴巴集团控股有限公司 | 一种库存扣减方法和装置 |
CN108133399A (zh) * | 2016-11-30 | 2018-06-08 | 北京京东尚科信息技术有限公司 | 高并发快响应的秒杀库存精准扣减的方法、装置及*** |
CN108154323A (zh) * | 2016-12-02 | 2018-06-12 | 苏宁云商集团股份有限公司 | 一种库存的动态管理方法及*** |
US20190333011A1 (en) * | 2017-01-06 | 2019-10-31 | Alibaba Group Holding Limited | Order processing system, method, and device |
WO2019047516A1 (zh) * | 2017-09-07 | 2019-03-14 | 北京京东尚科信息技术有限公司 | 信息输出方法和装置 |
WO2020192063A1 (zh) * | 2019-03-28 | 2020-10-01 | 苏宁云计算有限公司 | 一种基于缓存化的销售锁定方法及*** |
CN110888893A (zh) * | 2019-11-18 | 2020-03-17 | 湖南御家科技有限公司 | 一种基于微服务电商***的订单处理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110995480B (zh) | 区块链网络部署方法、装置、电子设备和介质 | |
CN113077218A (zh) | 仓储网络规划方法、装置及可读存储介质和电子设备 | |
CN110580155A (zh) | 状态机引擎的实现方法、装置、计算机设备及存储介质 | |
CN106920024B (zh) | 一种业务流程管理方法、装置及设备 | |
CN112114894A (zh) | 基于Activiti流程引擎的流程处理方法、装置及电子设备 | |
CN113506035A (zh) | 一种审批流程的确定方法、装置和设备 | |
CN110990396A (zh) | 数据存储方法、装置及存储介质 | |
CN113672340A (zh) | 一种虚拟机的增量备份方法、***、装置及可读存储介质 | |
CN115617511A (zh) | 资源数据处理的方法、装置、电子设备和存储介质 | |
CN112148779B (zh) | 确定业务指标的方法、装置及存储介质 | |
CN116185588A (zh) | 一种任务调度方法、装置、电子设备及可读存储介质 | |
CN112835617B (zh) | 一种灰度发布方法、装置、服务器及可读介质 | |
CN113807760A (zh) | 库存信息处理方法、装置及可读存储介质和电子设备 | |
WO2021129005A1 (zh) | 一种区块链状态变更交易追溯的方法及装置 | |
CN112751899A (zh) | 文件下载方法、装置、存储介质及电子设备 | |
CN113158173B (zh) | 账号分配方法、介质、装置和计算设备 | |
CN114298628A (zh) | 一种基于物品订单批量配送物品的方法及*** | |
CN111784229B (zh) | 一种武器***的库存配置方法 | |
US20220171380A1 (en) | Automated device maintenance | |
CN113312390A (zh) | 业务数据调用方法、装置及存储介质和电子设备 | |
CN112053125A (zh) | 会签方法、装置、电子设备及计算机可读存储介质 | |
CN113805910B (zh) | 一种应用中的数据共享的方法及*** | |
CN111327663A (zh) | 一种堡垒机分配的方法和设备 | |
CN114780021B (zh) | 副本修复方法、装置、电子设备及存储介质 | |
CN114065277B (zh) | 一种账单推送方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |