一种小型高并发扣减库存下单订单方法与流程

文档序号:14725632发布日期:2018-06-19 06:44阅读:1508来源:国知局

本发明涉及一种扣减库存下单订单方法,特别是涉及一种小型高并发扣减库存下单订单方法,属于订单处理技术领域。



背景技术:

近年来电子商务在我国蓬勃发展,人们越来越习惯于网上购物。随着电子信息的发展,基于移动互联网的订单服务得到了广泛地使用。目前,开源PHP+MYSQL电商系统的下单和库存扣减的实现原理几乎是相同的,即下单和扣减库存放在事务里执行,但该事务流程无法应对高并发下的库存扣减,在高并发下单场景下,多个用户创建了多个事务,同时修改一个商品的库存,而修改时MYSQL会建锁锁住,导致前一个事务没执行完,锁无法释放,后面的扣减库存都会失败。



技术实现要素:

本发明的主要目的是为了提供一种小型高并发扣减库存下单订单方法,采用外部锁机制与多个库存池分摊并发,能线性提升并发量,实现较为方便。

本发明的目的可以通过采用如下技术方案达到:

一种小型高并发扣减库存下单订单方法,包括:

分别建立虚拟管道、虚拟外部锁、虚拟管道表和虚拟库存池;

每个货品对应多个虚拟管道和多个虚拟库存池,多个虚拟管道和多个虚拟库存池一一对应,虚拟库存池放在MYSQL数据表中;

在库存扣减高并发的情况下,发起的每件事务先在虚拟管道表中查找当前可用虚拟管道,并按顺序找到非LOCK的虚拟管道,通过虚拟管道进入虚拟库存池中对应的库存数据,进行库存修改;

当该虚拟库存池不可用时,自动占用其他可用虚拟管道,并LOCK住该虚拟管道进行多库存池扣减。

进一步的,所述虚拟管道输送库存货品列表,所述虚拟外部锁在管道占用时,锁止虚拟管道;所述虚拟管道表存放货品的管道列表;所述虚拟库存池为含有需要的货品的库存。

进一步的,所述虚拟管道存放在内存中,虚拟管道表和管道列表也均存放在内存中。

进一步的,发起的每件事务进入虚拟管道时,会将该虚拟管道标识为LOCK状态,并记录LOCK状态的时间。

进一步的,在该虚拟管道处于LOCK状态时,该虚拟管道禁止使用。

进一步的,当事务结束后,虚拟管道标识解除,该虚拟管道可以使用。

进一步的,当虚拟库存池不可用时,自动占用其他可用虚拟管道,并LOCK住该虚拟管道,通过虚拟管道进入虚拟库存池中对应的库存数据,进行多库存池扣减。

本发明的有益技术效果:按照本发明的小型高并发扣减库存下单订单方法,本发明提供的小型高并发扣减库存下单订单方法,分别建立虚拟管道、虚拟外部锁、虚拟管道表和虚拟库存池;每个货品对应多个虚拟管道和多个虚拟库存池,多个虚拟管道和多个虚拟库存池一一对应,虚拟库存池放在MYSQL数据表中;在库存扣减高并发的情况下,发起的每件事务先在虚拟管道表中查找当前可用虚拟管道,并按顺序找到非LOCK的虚拟管道,通过虚拟管道进入虚拟库存池中对应的库存数据,进行库存修改;当该虚拟库存池不可用时,自动占用其他可用虚拟管道,并LOCK住该虚拟管道进行多库存池扣减。采用外部锁机制与多个库存池分摊并发,能线性提升并发量,实现较为方便。

具体实施方式

为使本领域技术人员更加清楚和明确本发明的技术方案,下面结合实施例对本发明作进一步详细的描述,但本发明的实施方式不限于此。

本实施例提供的一种小型高并发扣减库存下单订单方法,包括:

分别建立虚拟管道、虚拟外部锁、虚拟管道表和虚拟库存池;

每个货品对应多个虚拟管道和多个虚拟库存池,多个虚拟管道和多个虚拟库存池一一对应,虚拟库存池放在MYSQL数据表中;

在库存扣减高并发的情况下,发起的每件事务先在虚拟管道表中查找当前可用虚拟管道,并按顺序找到非LOCK的虚拟管道,通过虚拟管道进入虚拟库存池中对应的库存数据,进行库存修改;

当该虚拟库存池不可用时,自动占用其他可用虚拟管道,并LOCK住该虚拟管道进行多库存池扣减。

在一些实施例中,所述虚拟管道输送库存货品列表,所述虚拟外部锁在管道占用时,锁止虚拟管道;所述虚拟管道表存放货品的管道列表;所述虚拟库存池为含有需要的货品的库存。

在一些实施例中,所述虚拟管道存放在内存中,虚拟管道表和管道列表也均存放在内存中。

在一些实施例中,发起的每件事务进入虚拟管道时,会将该虚拟管道标识为LOCK状态,并记录LOCK状态的时间。

在一些实施例中,在该虚拟管道处于LOCK状态时,该虚拟管道禁止使用。

在一些实施例中,当事务结束后,虚拟管道标识解除,该虚拟管道可以使用。

在一些实施例中,当虚拟库存池不可用时,自动占用其他可用虚拟管道,并LOCK住该虚拟管道,通过虚拟管道进入虚拟库存池中对应的库存数据,进行多库存池扣减。

综上所述,在本实施例中,按照本实施例的小型高并发扣减库存下单订单方法,本实施例提供的小型高并发扣减库存下单订单方法,分别建立虚拟管道、虚拟外部锁、虚拟管道表和虚拟库存池;每个货品对应多个虚拟管道和多个虚拟库存池,多个虚拟管道和多个虚拟库存池一一对应,虚拟库存池放在MYSQL数据表中;在库存扣减高并发的情况下,发起的每件事务先在虚拟管道表中查找当前可用虚拟管道,并按顺序找到非LOCK的虚拟管道,通过虚拟管道进入虚拟库存池中对应的库存数据,进行库存修改;当该虚拟库存池不可用时,自动占用其他可用虚拟管道,并LOCK住该虚拟管道进行多库存池扣减。采用外部锁机制与多个库存池分摊并发,能线性提升并发量,实现较为方便。

以上所述,仅为本发明进一步的实施例,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明所公开的范围内,根据本发明的技术方案及其构思加以等同替换或改变,都属于本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1