库存数据调整方法、装置、电子设备和计算机可读介质与流程

文档序号:31947845发布日期:2022-10-26 05:32阅读:47来源:国知局
库存数据调整方法、装置、电子设备和计算机可读介质与流程

1.本公开的实施例涉及应用系统优化技术领域,具体涉及库存数据调整方法、装置、电子设备和计算机可读介质。


背景技术:

2.在电商平台的系统中,每种货品的库存数据在数据库中通常是单行记录的。在这种情况下,发明人发现,如果有大量用户访问电商平台,并获取某个货品时(如货品秒杀或促销),就需要查询该货品的库存以及扣减库存。然而,由于单行记录的数据库行锁并发能力通常情况下是有限的,比如mysql(一个关系型数据库管理系统)的单行并发写大概在300至500tps(transactions per second,每秒处理的事务数)之间。因此往往会影响系统的并发处理能力。进而会导致数据处理时长延长,增加用户的等待时长等问题。
3.该背景技术部分中所公开的以上信息仅用于增强对本发明构思的背景的理解,并因此,其可包含并不形成本国的本领域普通技术人员已知的现有技术的信息。


技术实现要素:

4.本公开的内容部分用于以简要的形式介绍构思,这些构思将在后面的具体实施方式部分被详细描述。本公开的内容部分并不旨在标识要求保护的技术方案的关键特征或必要特征,也不旨在用于限制所要求的保护的技术方案的范围。
5.本公开的一些实施例提出了库存数据调整方法、装置、电子设备、计算机可读介质和计算机程序产品,来解决以上背景技术部分提到的技术问题中的一项或多项。
6.第一方面,本公开的一些实施例提供了一种库存数据调整方法,包括:响应于接收到目标货品的用户获取请求,基于用户的信息,确定与用户对应的、存储有目标货品的库存数据的目标分库存,其中,目标货品的库存数据拆分存储在多个分库存中;确定目标分库存中,目标货品的分库存数量是否小于预设库存值;响应于确定不小于预设库存值,根据用户获取请求,扣减目标分库存中的分库存数量。
7.在一些实施例中,基于用户的信息,确定与用户对应的、存储有目标货品的库存数据的目标分库存,包括:基于用户的身份标识和目标货品的分库存个数,确定与用户对应的目标分库存。
8.在一些实施例中,基于用户的身份标识和目标货品的分库存个数,确定与用户对应的目标分库存,包括:根据预设散列算法,确定用户的身份标识的散列值;将散列值与目标货品的分库存个数进行取模运算;从存储有目标货品的库存数据的多个分库存中,将分库存标识与取模运算的值相匹配的分库存,确定为目标分库存。
9.在一些实施例中,多个分库存中的各分库存的分库存数据,分别存储在同一数据库表的不同行中,其中,每行记录有分库存标识和货品的分库存数量。
10.在一些实施例中,根据用户获取请求,扣减目标分库存中的分库存数量,包括:确定缓存数据中,与目标分库存对应的目标缓存库存数据;扣减目标缓存库存数据中,目标货
品的缓存库存数量;响应于确定目标缓存库存数据中的缓存库存数量扣减成功,扣减目标分库存中的分库存数量。
11.在一些实施例中,该方法还包括:响应于确定目标货品的库存数量扣减失败,更新目标缓存库存数据和目标分库存中的数据。
12.在一些实施例中,该方法还包括:响应于接收到指示对目标货品的库存数据的重新分配请求,暂停接收目标货品的用户获取请求,其中,重新分配请求中包括目标货品的新库存数量和新分库存个数;根据新库存数量和新分库存个数,确定各新分库存的分库存数量;基于各新分库存的数据,重新接收目标货品的用户获取请求。
13.在一些实施例中,重新分配请求通过以下方式生成:对多个分库存中的各分库存的分库存数量进行比较分析,确定目标库存差值;确定目标库存差值是否大于预设差值;响应于确定大于预设差值,将多个分库存的各分库存数量之和确定为新库存数量,以及根据设置的新分库存个数,生成重新分配请求。
14.在一些实施例中,重新分配请求还通过以下方式生成:响应于检测到对目标货品的库存数据的修改操作,将修改后的库存数量确定为新库存数量,将修改后的分库存个数确定为新分库存个数,生成重新分配请求。
15.在一些实施例中,该方法还包括:响应于确定目标分库存中的分库存数量扣减成功,生成与用户获取请求对应的订单信息。
16.第二方面,本公开的一些实施例提供了一种库存数据调整装置,包括:分库存确定单元,被配置成响应于接收到目标货品的用户获取请求,基于用户的信息,确定与用户对应的、存储有目标货品的库存数据的目标分库存,其中,目标货品的库存数据拆分存储在多个分库存中;分库存数量确定单元,被配置成确定目标分库存中,目标货品的分库存数量是否小于预设库存值;扣减单元,被配置成响应于确定不小于预设库存值,根据用户获取请求,扣减目标分库存中的分库存数量。
17.在一些实施例中,分库存确定单元进一步被配置成基于用户的身份标识和目标货品的分库存个数,确定与用户对应的目标分库存。
18.在一些实施例中,分库存确定单元进一步被配置成根据预设散列算法,确定用户的身份标识的散列值;将散列值与目标货品的分库存个数进行取模运算;从存储有目标货品的库存数据的多个分库存中,将分库存标识与取模运算的值相匹配的分库存,确定为目标分库存。
19.在一些实施例中,多个分库存中的各分库存的分库存数据,分别存储在同一数据库表的不同行中,其中,每行记录有分库存标识和货品的分库存数量。
20.在一些实施例中,扣减单元进一步被配置成确定缓存数据中,与目标分库存对应的目标缓存库存数据;扣减目标缓存库存数据中,目标货品的缓存库存数量;响应于确定目标缓存库存数据中的缓存库存数量扣减成功,扣减目标分库存中的分库存数量。
21.在一些实施例中,该装置还包括更新单元,被配置成响应于确定目标货品的库存数量扣减失败,更新目标缓存库存数据和目标分库存中的数据。
22.在一些实施例中,该装置还包括重新分配单元,被配置成响应于接收到指示对目标货品的库存数据的重新分配请求,暂停接收目标货品的用户获取请求,其中,重新分配请求中包括目标货品的新库存数量和新分库存个数;根据新库存数量和新分库存个数,确定
各新分库存的分库存数量;基于各新分库存的数据,重新接收目标货品的用户获取请求。
23.在一些实施例中,该装置还包括请求生成单元,被配置成对多个分库存中的各分库存的分库存数量进行比较分析,确定目标库存差值;确定目标库存差值是否大于预设差值;响应于确定大于预设差值,将多个分库存的各分库存数量之和确定为新库存数量,以及根据设置的新分库存个数,生成重新分配请求。
24.在一些实施例中,请求生成单元还进一步被配置成响应于检测到对目标货品的库存数据的修改操作,将修改后的库存数量确定为新库存数量,将修改后的分库存个数确定为新分库存个数,生成重新分配请求。
25.在一些实施例中,该装置还包括订单生成单元,被配置成响应于确定目标分库存中的分库存数量扣减成功,生成与用户获取请求对应的订单信息。
26.第三方面,本公开的一些实施例提供了一种电子设备,包括:一个或多个处理器;存储装置,其上存储有一个或多个程序,当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现上述第一方面中任一实现方式所描述的方法。
27.第四方面,本公开的一些实施例提供了一种计算机可读介质,其上存储有计算机程序,其中,程序被处理器执行时实现上述第一方面中任一实现方式所描述的方法。
28.第五方面,本公开的一些实施例提供了一种计算机程序产品,包括计算机程序,计算机程序在被处理器执行时实现上述第一方面中任一实现方式所描述的方法。
29.本公开的上述各个实施例具有如下有益效果:本公开的一些实施例的库存数据调整方法,可以提高库存数据的查询和调整处理(如扣减)效率。具体来说,相关数据的存储方法通常是,每种货品的库存数据在数据库中采用单行记录。这样,在高并发情况下(如货品秒杀抢购),都需要在单行记录中去查询货品的库存数量,以及进行货品库存的扣减。然而,受行锁的影响,单行记录的数据库行锁并发能力通常是有限的。行锁通常指数据库行级锁。目的是让数据被查出来的时候就加上锁,然后再执行后面的程序逻辑。这样此后为了操作相同数据而进来的请求,就会在一开始就被拦住。这种情况下,会严重影响库存查询和扣减的并发处理能力。导致用户等待时长增加、货品的获取数量与库存数量不一致等情况。
30.基于此,本公开的一些实施例的库存数据调整方法,可以将目标货品的库存数据拆分存储在多个分库存中。即将库存数据的单条存储拆分为多条存储。这样,可以避免受到单条记录的数据库行锁并发能力的影响。此外,在接收到目标货品的用户获取请求时,可以基于用户的信息,确定与用户对应的、存储有目标货品的库存数据的目标分库存。从而可以查询和处理目标分库存中的分库存数据。即同时可以将同一货品的用户获取请求进行拆分。这样,可以减少每个分库存所需处理的并发数据量。也就是说,本公开的方法可以达到去中心库存查询和库存扣减的目的,从而能够大大提高系统的高并发能力。进而有助于缩短数据处理时长,减少用户等待时长,保证库存数据的一致性。
附图说明
31.结合附图并参考以下具体实施方式,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。贯穿附图中,相同或相似的附图标记表示相同或相似的元素。应当理解附图是示意性的,元件和元素不一定按照比例绘制。
32.图1是根据本公开的库存数据调整方法的一些实施例的流程图;
33.图2是根据本公开的库存数据调整方法的另一些实施例的流程图;
34.图3是本公开的库存数据调整方法与相关库存查询扣减方法的流程对比图;
35.图4是本公开的库存数据调整方法中对库存数据重新分配的一些实施例的流程图;
36.图5是根据本公开的库存数据调整装置的一些实施例的结构示意图;
37.图6是适于用来实现本公开的一些实施例的电子设备的结构示意图。
具体实施方式
38.下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例。相反,提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
39.另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。
40.需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
41.需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
42.本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
43.本公开中所涉及的用户个人信息(例如用户获取请求、用户的身份标识)的收集、存储、使用等操作,在执行相应操作之前,相关组织或个人尽到包括开展个人信息安全影响评估、向个人信息主体履行告知义务、事先征得个人信息主体的授权同意等义务。
44.下面将参考附图并结合实施例来详细说明本公开。
45.图1示出了根据本公开的库存数据调整方法的一些实施例的流程100。该方法包括以下步骤:
46.步骤101,响应于接收到目标货品的用户获取请求,基于用户的信息,确定与用户对应的、存储有目标货品的库存数据的目标分库存。
47.在一些实施例中,库存数据调整方法的执行主体(例如服务器)可以通过有线连接方式或无线连接方式,来接收用户获取请求。其中,用户获取请求可以用于表征用户想要获取目标货品。通常情况下,用户获取请求中可以包括用户的信息、目标货品的信息和获取操作信息等。这里的获取通常是对货品的库存产生影响的操作,如可以是在电商平台下单购买、预订、秒杀抢购等操作。目标货品可以是电商平台上提供的任意货品,如秒杀商品。
48.在一些实施例中,执行主体可以基于用户的信息,来确定与用户对应的目标分库存。其中,目标货品的库存数据可以拆分存储在多个(至少两个)分库存中。这里的目标分库存可以为存储有目标货品的库存数据的分库存。
49.作为示例,执行主体可以按照用户获取请求的发生时间的先后顺序,来确定用户所对应的目标分库存。例如,目标货品的库存数据拆分存储在三个分库存中。此时,对于第一个用户获取请求,执行主体可以将第一分库存确定为与该用户对应的目标分库存。对于
第二个用户获取请求,执行主体可以将第二分库存确定为与该用户对应的目标分库存。以此类推,对于第四个用户获取请求,执行主体又可以将第一分库存确定为与该用户对应的目标分库存。这样可以保证数据分配的均匀性。
50.可选地,执行主体还可以基于用户的身份标识和目标货品的分库存个数,来确定与用户对应的目标分库存。具体参见图2实施例中的相关描述,此处不再赘述。
51.需要说明的是,上述库存数据的拆分存储方式并不限制。作为示例,为了进一步保证各分库存中分库存数量的均匀性,执行主体可以将目标货品的库存数量,平均拆分存储在多个分库存中。
52.另外,为了进一步提升系统的高并发处理能力,不同货品的库存数据可以分散存储在不同的数据库和/或不同表中。而为了便于实现同一货品数据的快速查找,同一货品的库存数据通常可以存储在同一张表中。也就是说,上述多个分库存中的各分库存的分库存数据,可以分别存储在同一数据库表的不同行中。其中,每行可以记录有分库存标识(如编号)和货品的分库存数量,以实现分库存的区分。
53.步骤102,确定目标分库存中,目标货品的分库存数量是否小于预设库存值。
54.在一些实施例中,基于步骤101确定的目标分库存,执行主体可以确定该目标分库存中,目标货品的分库存数量是否小于预设库存数值。这里的预设库存值可以根据实际情况进行设置,通常为整数,如可以为1。
55.在这里,若分库存数量小于预设库存值,则可以说明没有库存或库存数量较少。此时,执行主体可以生成相应的提示信息(如无库存,商品秒杀活动结束),并发送给用户所使用的终端,以告知用户。若确定不小于预设库存值,则执行主体可以继续执行步骤103。
56.步骤103,根据用户获取请求,扣减目标分库存中的分库存数量。
57.在一些实施例中,在确定目标分库存的分库存数量不小于预设库存值的情况下,执行主体可以根据用户获取请求,来扣减目标分库存中的分库存数量。即可以按照用户获取请求所指示的目标货品的获取数量,来扣减分库存数量。也就是说,在原来的分库存数量上减去获取数量。
58.在一些应用场景中,为了提升数据处理效率,系统中通常会缓存有与数据对应的缓存数据。在这里,为了进一步提升库存查询和扣减的并发能力,对应货品的库存数据变化情况的缓存数据,同样也可以采用上述拆分存储方式。即缓存的一条数据对应一行数据库中的数据(即一个分库存的数据)。也就是说,除了数据库之外,对于缓存同样可以去中心化,并且可以与数据库的拆分逻辑保持一致。这样有助于进一步提高系统的高并发处理能力。可以理解的是,为了便于区分缓存库存数据,可以设置有缓存标记。其中,缓存标记可以包括货品的标识和对应的分库存标识。
59.在这种情况下,首先,执行主体可以确定缓存数据中,与目标分库存对应的目标缓存库存数据。例如可以将缓存标记与目标货品的标识、目标分库存标识进行匹配。接着,可以扣减目标缓存库存数据中,目标货品的缓存库存数量。即先进行缓存库存的扣减。之后,在确定目标缓存库存数据中的缓存库存数量扣减成功的情况下,执行主体可以扣减目标分库存中的分库存数量。
60.通过以上描述,而本公开的一些实施例提供的库存数据调整方法,可以将目标货品的库存数据拆分存储在多个分库存中。即将库存数据的单条存储拆分为多条存储。这样,
可以避免受到单条记录的数据库行锁并发能力的影响。此外,在接收到目标货品的用户获取请求时,可以基于用户的信息,确定与用户对应的、存储有目标货品的库存数据的目标分库存。从而可以查询和处理目标分库存中的分库存数据。即同时可以将同一货品的用户获取请求进行拆分。这样,可以减少每个分库存所需处理的并发数据量。也就是说,本公开的方法可以达到去中心库存查询和库存扣减的目的,从而能够大大提高系统的高并发能力。进而有助于缩短数据处理时长,减少用户等待时长。同时也可以有效地保证库存数据的一致性,减少或避免获取数量与库存数量不一致的情况(如商品多卖)。
61.继续参考图2,其示出了本公开的库存数据调整方法的另一实施例的流程200。该方法包括以下步骤:
62.步骤201,基于用户的身份标识和目标货品的分库存个数,确定与用户对应的目标分库存。
63.在一些实施例中,执行主体在接收到目标货品的用户获取请求的情况下,可以基于用户的身份标识和目标货品的分库存个数,来确定与用户对应的目标分库存。这里的目标分库存可以为存储有目标货品的库存数据的分库存。可以参见图1实施例的步骤101中相关描述,此处不再赘述。
64.作为示例,首先,执行主体可以将用户的身份标识(如id,identity document),与目标货品的分库存个数进行取模运算。其中,取模运算通常是求两个数相除的余数。接着,从存储有目标货品的库存数据的多个分库存中,可以将分库存标识与取模运算的值相匹配(如相同)的分库存,确定为与该用户对应的目标分库存。
65.在一些实施例中,执行主体也可以根据用户的身份标识的散列值和目标货品的分库存个数,来确定与用户对应的目标分库存。首先,根据预设散列算法,执行主体可以确定用户的身份标识的散列值(即hash哈希值)。接着,可以将散列值与目标货品的分库存个数进行取模运算。之后,从存储有目标货品的库存数据的多个分库存中,可以将分库存标识与取模运算的值相匹配的分库存,确定为目标分库存。
66.在这里,hash一般翻译为散列,或音译为哈希,是把任意长度的输入(又叫做预映射pre-image),通过散列算法变换成固定长度的输出。该输出就是散列值。这种转换是一种压缩映射。也就是,散列值的空间通常远小于输入的空间。此外,不同的输入可能会散列成相同的输出。
67.需要说明的是,通过预设散列算法,可以保证散列值与分库存个数的取模运算的值,位于目标货品的各分库存标识范围内。即可以保证每个用户都会有与之对应的目标分库存。同时预设散列算法,还可以保障数据散列值的均匀性。从而使得各分库存中的剩余分库存数量差别不大,从而有利于提高货品的出库量。
68.步骤202,确定目标分库存中,目标货品的分库存数量是否小于预设库存值。
69.在一些实施例中,可以参见图1实施例的步骤102中的相关描述,此处不再赘述。
70.可以理解的是,通常情况下,目标缓存库存数据会与目标分库存中数据保持一致。因此,执行主体也可以查询目标缓存库存数据中,目标货品的缓存库存数量。通过确定缓存库存数量是否小于预设库存值,来确定分库存数量是否小于预设库存值。
71.步骤203,根据用户获取请求,扣减目标分库存中的分库存数量。
72.在一些实施例中,可以参见图1实施例的步骤103中的相关描述,此处不再赘述。
73.可以理解的是,由于目标缓存库存数据通常会与目标分库存中数据保持一致。因此,在缓存库存数量扣减成功的情况下,执行主体可以进行分库存数量扣减。而当缓存库存数量扣减失败时,可以说明目标货品的库存不足或其他情况。此时,为了提高数据处理效率,执行主体可以不再对目标分库存的数据进行处理。
74.步骤204,确定目标分库存中的分库存数量是否扣减成功。
75.在一些实施例中,执行主体在可以确定目标分库存中的分库存数量是否扣减成功。在扣减失败的情况下,执行主体可以生成提示信息,如获取(秒杀)失败。以及可以将该提示信息发送给用户所使用的终端。若扣减成功,则可以继续执行步骤205。
76.另外,在目标货品的库存数量扣减失败的情况下,有可能存在缓存库存数量已扣减成功,而分库存数量扣减失败的情况。此时,为了保证数据的一致性,执行主体可以更新目标缓存库存数据和目标分库存中的数据。
77.步骤205,生成与用户获取请求对应的订单信息。
78.在一些实施例中,在扣减成功的情况下,说明获取目标货品成功。此时,执行主体可以生成与用户获取请求对应的订单信息。订单信息的内容在这里并不限制,如可以包括以下至少一项:用户的信息(身份标识、收货地址信息)、目标货品的信息(如标识、数量等)、订单的生成时间、订单状态信息等等。
79.可选地,在生成订单信息的情况下,执行主体同样可以对目标货品的库存数据进行更新,以保证数据的一致性和准确性。
80.本公开的一些实施例提供的库存数据调整方法,进一步丰富和完善库存数据查询和扣减的过程。另外,通过用户的身份标识的散列值,来确定与用户对应的目标分库存,可以保证数据的均匀性,从而减少各分库存中分库存数量的差距。这样,有助于提高货品的出库量。
81.在这里,通过图3所示的流程图,可以看出本公开的库存数据调整方法,与相关库存查询扣减方法的差异。作为示例,对于某商品的秒杀下单,在传统下单库存查询扣减方法的流程中,在接收到用户的秒杀请求下单时,首先查询库存。即查询库存表中该商品的单行库存记录,可以包含商品标识、商品名称和库存数量(如10000)。接着,确认是否有库存。在有库存的情况下,可以进行库存扣减。即减少该商品的单行库存记录中的库存数量。若扣减成功,则可以生成订单服务,下单结束。若扣减失败,说明秒杀失败。
82.而在本公开的库存数据调整方法的流程中,在接收到用户的秒杀请求下单时,首先同样可以查询库存。不同之处在于,库存表中的商品库存会分桶拆分。如图3中所示,可以拆分为五条记录。而每条记录中可以包括分桶编号(如商品库存记录1至5)、商品名称和分桶库存数量(如2000)。此处,会根据用户身份标识的散列值,来确定库存分桶(分库存)。在有库存的情况下,可以进行分桶库存扣减,如扣减商品库存记录5中的分桶库存数量。之后,若扣减成功,则可以生成订单服务,下单结束。若扣减失败,说明秒杀失败。
83.可以理解的是,上述参与秒杀活动的商品、秒杀总库存、秒杀活动开始结束时间、分桶数(分库存个数)、分桶规则等可以提前进行设置。也就是说,这一切都是在秒杀活动预热后,或者当电商平台上线该秒杀活动时,已经完成数据分桶的分配保存和缓存更新。
84.下面请参考图4,其示出了本公开的库存数据调整方法中对库存数据重新分配的一些实施例的流程400。需要说明的是,在实际的商品销售(如秒杀活动)过程中,商品的库
存可能会进行调整。或者分桶数据消费不均,即各分库存的剩余分库存数量差距较大,需要进行重新分桶编排。对于这种情况,可以采用如下方法对库存数据重新分配。
85.步骤401,响应于接收到指示对目标货品的库存数据的重新分配请求,暂停接收目标货品的用户获取请求。
86.在一些实施例中,库存数据调整方法的执行主体还可以通过有线连接方式或无线连接方式,来接收库存数据的重新分配请求。在这里,重新分配请求可以用于指示对目标货品的库存数据重新分配。其中,重新分配请求中可以包括目标货品的新库存数量和新分库存个数。此时,执行主体可以暂停接收目标货品的用户获取请求,如暂停参与秒杀活动的目标货品的提单请求。并且可以继续执行步骤402,以重新分配库存数据(即重新分桶编排)。
87.可以理解的是的,可以采用多种方式来触发生成上述重新分配请求。作为示例,可以是当检测到各分库存中的剩余分库存数量差距加大时生成的。具体地,首先,执行主体可以对多个分库存中的各分库存的分库存数量进行比较分析,确定目标库存差值。
88.这里的目标库存差值可以根据实际需求进行设置。如可以是剩余分库存数量的最大值与最小值的差值。对于这种情况,可以定时执行上述比较分析。又如,可以是所有非零的剩余分库存数量之和,即各非零的剩余分库存数量与剩余分库存数量为零的差值的总和。也就是说,当有分库存数量为零时,即有分库存首先被秒杀完时,此时可以执行上述比较分析。
89.接着,执行主体可以确定目标库存差值是否大于预设差值。其中,预设差值在这里同样不限制。若确定大于预设差值,可以说明剩余分库存数量差距较大。此时,可以将多个分库存的各分库存数量之和确定为新库存数量。以及可以根据设置的新分库存个数,生成重新分配请求。在这里,新分库存个数可以是用户预先设置的。也可以是用户(如电商平台的运营人员)在接收到指示重新分配的提示信息时,而输入设置的。执行主体库可以在确定目标库存差值大于预设差值的情况下,生成上述提示信息,并发送给用户。
90.在一些实施例中,上述重新分配请求也可以是用户触发生成的。例如用户可以根据实际运营情况,在相应页面对货品的库存数据进行修改操作。其中,修改可以包括增加、减少、删除中的至少一种。修改的内容可以包括以下至少一项:库存数量、分库存个数、分配规则等。此时,执行主体在检测到对目标货品的库存数据的修改操作时,可以将修改后的库存数量确定为新库存数量,以及可以将修改后的分库存个数确定为新分库存个数,从而生成重新分配请求。可以理解的是,用户可以只对部分内容进行修改。而对于未修改的内容,执行主体可以默认将其作为新的数据。
91.步骤402,根据新库存数量和新分库存个数,确定各新分库存的分库存数量。
92.在一些实施例中,根据重新分配请求中的新库存数量和新分库存个数,执行主体可以重新确定各新分库存的分库存数量。作为示例,可以平均分配或等差分配等。
93.步骤403,基于各新分库存的数据,重新接收目标货品的用户获取请求。
94.在一些实施例中,基于步骤402确定的各新分库存的数据,执行主体可以重新接收目标货品的用户获取请求,如在电商平台上重新上线该货品的秒杀活动。
95.可以理解的是,商品秒杀本质上往往是高并发技术在特定场景下的综合应用。秒杀活动本身就存在有的用户能买到,有的用户买不到。本公开的库存数据调整方法中的分库存(拆分存储)是一种提升秒杀并发的方式。同时,方案里也提供了,库存重分配的策略。
假设原先秒杀活动商品库存为100000,分为10个分库存记录,即每个分库存对应的商品库存是10000。如果其中编号为1的分库存中的库存首先被秒杀完。对于编号为2-10的分库存记录,理论上由于散列的均匀性,其他分库存剩余的库存也不会很多。假设所有分库存的剩余库存之和为1000,那么运营人员可以暂停秒杀,重新对1000个商品按照1个分库存去分配。这样所有用户都会分配到新的唯一的分库存中去秒杀商品。本实施例公开的库存数据调整方法,进一步增加了库存数据重新分配的过程。可以提升方法的灵活性和适用范围。
96.在一些实施例中,为了减少存储空间的占用,执行主体在接收到重新分配请求的情况下,还可以删除当前存储有目标货品的库存数据的多个分库存的数据,以及对应的缓存数据。
97.进一步参考图5,作为对上述图1至图4所示方法的实现,本公开提供了一种库存数据调整装置的一些实施例,这些装置实施例与图1至图4所示的那些方法实施例相对应,该装置具体可以应用于各种电子设备中。
98.如图5所示,一些实施例的库存数据调整装置500可以包括:分库存确定单元501,被配置成响应于接收到目标货品的用户获取请求,基于用户的信息,确定与用户对应的、存储有目标货品的库存数据的目标分库存,其中,目标货品的库存数据拆分存储在多个分库存中;分库存数量确定单元502,被配置成确定目标分库存中,目标货品的分库存数量是否小于预设库存值;扣减单元503,被配置成响应于确定不小于预设库存值,根据用户获取请求,扣减目标分库存中的分库存数量。
99.在一些实施例中,分库存确定单元501进一步被配置成基于用户的身份标识和目标货品的分库存个数,确定与用户对应的目标分库存。
100.在一些实施例中,分库存确定单元501进一步被配置成根据预设散列算法,确定用户的身份标识的散列值;将散列值与目标货品的分库存个数进行取模运算;从存储有目标货品的库存数据的多个分库存中,将分库存标识与取模运算的值相匹配的分库存,确定为目标分库存。
101.在一些实施例中,多个分库存中的各分库存的分库存数据,分别存储在同一数据库表的不同行中,其中,每行记录有分库存标识和货品的分库存数量。
102.在一些实施例中,扣减单元503进一步被配置成确定缓存数据中,与目标分库存对应的目标缓存库存数据;扣减目标缓存库存数据中,目标货品的缓存库存数量;响应于确定目标缓存库存数据中的缓存库存数量扣减成功,扣减目标分库存中的分库存数量。
103.在一些实施例中,该装置500还包括更新单元(图5中未示出),被配置成响应于确定目标货品的库存数量扣减失败,更新目标缓存库存数据和目标分库存中的数据。
104.在一些实施例中,该装置500还包括重新分配单元(图5中未示出),被配置成响应于接收到指示对目标货品的库存数据的重新分配请求,暂停接收目标货品的用户获取请求,其中,重新分配请求中包括目标货品的新库存数量和新分库存个数;根据新库存数量和新分库存个数,确定各新分库存的分库存数量;基于各新分库存的数据,重新接收目标货品的用户获取请求。
105.在一些实施例中,该装置500还包括请求生成单元(图5中未示出),被配置成对多个分库存中的各分库存的分库存数量进行比较分析,确定目标库存差值;确定目标库存差值是否大于预设差值;响应于确定大于预设差值,将多个分库存的各分库存数量之和确定
为新库存数量,以及根据设置的新分库存个数,生成重新分配请求。
106.在一些实施例中,请求生成单元还可以进一步被配置成响应于检测到对目标货品的库存数据的修改操作,将修改后的库存数量确定为新库存数量,将修改后的分库存个数确定为新分库存个数,生成重新分配请求。
107.在一些实施例中,该装置500还包括订单生成单元(图5中未示出),被配置成响应于确定目标分库存中的分库存数量扣减成功,生成与用户获取请求对应的订单信息。
108.可以理解的是,该装置500中记载的诸单元与参考图1至图4描述的方法中的各个步骤相对应。由此,上文针对方法描述的操作、特征以及产生的有益效果同样适用于装置500及其中包含的单元,在此不再赘述。
109.下面参考图6,其示出了适于用来实现本公开的一些实施例的电子设备(例如服务器)600的结构示意图。图6示出的电子设备仅仅是一个示例,不应对本公开的实施例的功能和使用范围带来任何限制。
110.如图6所示,电子设备600可以包括处理装置(例如中央处理器、图形处理器等)601,其可以根据存储在只读存储器(rom)602中的程序或者从存储装置608加载到随机访问存储器(ram)603中的程序而执行各种适当的动作和处理。在ram 603中,还存储有电子设备600操作所需的各种程序和数据。处理装置601、rom 602以及ram603通过总线604彼此相连。输入/输出(i/o)接口605也连接至总线604。
111.通常,以下装置可以连接至i/o接口605:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置606;包括例如扬声器、振动器等的输出装置607;包括例如磁带、硬盘等的存储装置608;以及通信装置609。通信装置609可以允许电子设备600与其他设备进行无线或有线通信以交换数据。虽然图6示出了具有各种装置的电子设备600,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。图6中示出的每个方框可以代表一个装置,也可以根据需要代表多个装置。
112.特别地,根据本公开的一些实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的一些实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的一些实施例中,该计算机程序可以通过通信装置609从网络上被下载和安装,或者从存储装置608被安装,或者从rom 602被安装。在该计算机程序被处理装置601执行时,执行本公开的一些实施例的方法中限定的上述功能。
113.需要说明的是,本公开的一些实施例中记载的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开的一些实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开的一些实施例中,计算机可读信号介质可以包括在基带中
或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、rf(射频)等等,或者上述的任意合适的组合。
114.上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:响应于接收到目标货品的用户获取请求,基于用户的信息,确定与用户对应的、存储有目标货品的库存数据的目标分库存,其中,目标货品的库存数据拆分存储在多个分库存中;确定目标分库存中,目标货品的分库存数量是否小于预设库存值;响应于确定不小于预设库存值,根据用户获取请求,扣减目标分库存中的分库存数量。
115.此外,可以以一种或多种程序设计语言或其组合来编写用于执行本公开的一些实施例的操作的计算机程序代码,程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c++,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)——连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
116.附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
117.描述于本公开的一些实施例中的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括分库存确定单元、分库存数量确定单元和扣减单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,分库存确定单元还可以被描述为“基于用户的信息,确定与用户对应的、存储有目标货品的库存数据的目标分库存的单元”。
118.本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、片上系统(soc)、复杂可编程逻辑设备(cpld)等等。
119.本公开的一些实施例还提供一种计算机程序产品,包括计算机程序,计算机程序在被处理器执行时,实现上述的任一种库存数据调整方法。
120.以上描述仅为本公开的一些较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开的实施例中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开的实施例中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1