本发明涉及数据处理,特别涉及一种saas商品系统中sku高效出库的方法及装置。
背景技术:
1、sku出库是指在库存管理中,将特定的库存单位(sku)从仓库中取出并准备发货给客户的过程。现有的交易系统中,sku出库通常采用数据库全局锁的方式,通过selectlimit 1语句从sku库存中选择一个未使用的兑换码,然后进行处理,数据库全局锁严重影响了系统的并发性能,尤其是在高流量的促销活动期间。此外,频繁的数据库查询操作也增加了数据库的负载,极大降低了sku出库效率。
2、有鉴于此,亟需一种saas商品系统中sku高效出库的方法及装置,以至少解决上述不足。
技术实现思路
1、本发明目的之一在于提供了一种saas商品系统中sku高效出库的方法及装置,将sku库存兑换码存储在redis zset队列中,同时,基于令牌桶,获取用户请求,将用户请求兑换的商品先通过事务进行锁定,锁定后,基于zpopmin命令,根据sku库存兑换码和用户请求选择未使用兑换码,处理未使用兑换码逻辑并基于分布式锁访问对应sku,完成出库,提高了分布式事务处理的高效性、提升了出库效率。
2、本发明实施例提供的一种saas商品系统中sku高效出库的方法,包括:
3、导入sku库存兑换码;
4、基于令牌桶,获取用户请求;
5、根据用户请求,请求事务锁定sku;
6、锁定sku后,基于zpopmin命令,根据sku库存兑换码和用户请求选择未使用兑换码;
7、若成功选择,处理未使用兑换码逻辑并释放锁;
8、若兑换码用尽,则进行无可用兑换码提醒。
9、优选的,基于令牌桶,获取用户请求,包括:
10、当用户发出请求时,尝试从令牌桶中获取令牌;
11、若尝试获取成功,将用户发出的请求作为用户请求;
12、若尝试获取失败,返回错误信息。
13、本发明实施例提供的一种saas商品系统中sku高效出库的方法,还包括:
14、根据预设的速率,令牌生成器周期性向令牌桶中添加令牌;
15、获取令牌桶的最大容量,当桶满时,丢弃多余令牌。
16、优选的,基于zpopmin命令,根据sku库存兑换码和用户请求选择未使用兑换码,包括:
17、获取redis有序集合中的sku库存兑换码的目标分数;
18、基于zpopmin命令,根据目标分数从低到高的顺序,依次弹出sku库存兑换码,并作为待选择码;
19、若待选择码和预设的历史使用兑换码库中的历史使用兑换码不存在字符匹配,则将对应待选择码作为选择的未使用兑换码。
20、优选的,获取redis有序集合中的sku库存兑换码的目标分数,包括:
21、获取sku库存兑换码对应的目标商品的商品信息;
22、根据商品信息,提取商品信息特征;
23、根据商品信息特征的特征类型对应于预设的特征描述因子构建模版的模版位置,构建第一商品信息特征描述因子;
24、获取请求人员的历史请求记录;
25、根据历史请求记录,确定历史请求商品的兑换码分数;
26、根据历史请求记录和第一商品信息特征描述因子相同的构建原理,构建第二商品信息特征描述因子;
27、根据历史请求记录,获取请求过程请求人员的对话记录;
28、解析记录对话并调整兑换码分数,获取训练分数;
29、将第二商品信息特征描述因子作为预设的神经网络模型输入、训练分数作为神经网络模型输出,训练评分模型;
30、将第一商品信息特征描述因子输入评分模型,获得目标分数。
31、优选的,解析记录对话并调整兑换码分数,获取训练分数,包括:
32、解析记录对话,提取对话语义序列;
33、根据对话语义序列中的对话语义,识别历史请求商品兑换码描述语义;
34、获取历史请求商品兑换码描述语义在对话语义序列中预设序列范围内的目标语义,确定历史请求商品兑换码描述语义对应的历史请求商品兑换码的识别评价;
35、根据识别评价调整兑换码分数,获取训练分数。
36、优选的,根据识别评价调整兑换码分数,获取训练分数,包括:
37、将历史请求商品兑换码按照兑换码分数从小到大的顺序进行排序,获取历史请求商品兑换码序列;
38、获取历史请求商品兑换码的评价特征;
39、确定历史请求商品兑换码序列中相邻的历史请求商品兑换码构成的评价成员组;
40、若评价成员组的组间评价特征满足预设的特征条件,则交换评价成员组对应的历史请求商品兑换码的兑换分数,完成调整;
41、其中,预设的特征条件为:
42、将评价成员组中相对在历史请求商品兑换码序列中靠前的历史请求商品兑换码作为第一目标历史兑换码,第一目标历史兑换码的评价特征为弹出快的特征表示;
43、将评价成员组中相对在历史请求商品兑换码序列中靠后的历史请求商品兑换码作为第二目标历史兑换码,第二目标历史兑换码的评价特征为弹出慢的特征表示;
44、评价成员组中任一组员的评价特征对应的快慢程度等级小于等于预设的等级阈值。
45、优选的,获取redis有序集合中的sku库存兑换码的目标分数,还包括:
46、根据对话记录,筛选目标历史请求记录;
47、解析目标历史请求记录,读取目标历史请求对应的系统历史sku序列;
48、基于预设的sku信息特征提取模版、根据系统历史sku序列中的系统历史sku,提取第一sku信息特征集;
49、基于预设的关系特征提取模版、根据第一sku信息特征集对应的系统历史sku在系统历史sku序列中的目标序列位置,提取第一sku信息特征集对应的系统历史sku在系统历史sku序列中的排序关系特征;
50、根据排序关系特征和预设的排序分对照表,确定排序关系特征对应的排序分;
51、将第一sku信息特征集作为输入、排序分作为输出,训练序列排序分确定模型;
52、将基于sku信息特征提取模版提取的redis有序集合中的sku库存兑换码的第二sku信息特征集输入序列排序分确定模型,获得目标分数。
53、本发明实施例提供的一种saas商品系统中sku高效出库的方法,还包括:
54、若兑换码用尽,获取saas商品系统的未来入库物流信息;
55、根据未来入库物流信息,获取未来库存商品预计入库时间;
56、获取未来库存商品信息;
57、获取sku库存兑换码预设的目标构建规则;
58、根据目标构建规则、未来库存商品信息和未来库存商品预计入库时间,生成未来兑换码;
59、将未来兑换码预发放给提示兑换码用尽的对应用户,发放时,基于预设的显示规则,动态显示未来库存商品预计入库时间;
60、获取用户对未来兑换码的反馈信息,根据反馈信息判断是否发放未来兑换码;
61、当判断发放未来兑换码且未来兑换码对应的未来商品入库,对相应用户进行远程提醒。
62、本发明实施例提供的一种saas商品系统中sku高效出库的装置,包括:
63、sku库存兑换码导入子系统,用于导入sku库存兑换码;
64、用户请求获取子系统,用于基于令牌桶,获取用户请求;
65、sku锁定子系统,用于根据用户请求,请求事务锁定sku;
66、未使用兑换码选择子系统,用于锁定sku后,基于zpopmin命令,根据sku库存兑换码和用户请求选择未使用兑换码;
67、出库子系统,用于若成功选择,处理未使用兑换码逻辑并释放锁;
68、提醒子系统,用于若兑换码用尽,则进行无可用兑换码提醒。
69、优选的,用户请求获取子系统基于令牌桶,获取用户请求,执行如下操作:
70、当用户发出请求时,尝试从令牌桶中获取令牌;
71、若尝试获取成功,将用户发出的请求作为用户请求;
72、若尝试获取失败,返回错误信息。
73、本发明实施例提供的一种saas商品系统中sku高效出库的装置,还执行如下操作:
74、根据预设的速率,令牌生成器周期性向令牌桶中添加令牌;
75、获取令牌桶的最大容量,当桶满时,丢弃多余令牌。
76、本发明的有益效果为:
77、本发明将sku库存兑换码存储在redis zset队列中,同时,基于令牌桶,获取用户请求,将用户请求兑换的商品先通过事务进行锁定,锁定后,基于zpopmin命令,根据sku库存兑换码和用户请求选择未使用兑换码,处理未使用兑换码逻辑并基于分布式锁访问对应sku,完成出库,提高了分布式事务处理的高效性、提升了出库效率。
78、本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过本技术文件中所特别指出的结构来实现和获得。
79、下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。