[发明专利]一种高并发多线程数据处理方法在审
申请号: | 202210939190.8 | 申请日: | 2022-08-05 |
公开(公告)号: | CN115358854A | 公开(公告)日: | 2022-11-18 |
发明(设计)人: | 王玉冬;俞秋琳;磨柑竹;魏鹏;汪昕 | 申请(专利权)人: | 上海浦东发展银行股份有限公司 |
主分类号: | G06Q40/04 | 分类号: | G06Q40/04;G06Q10/08;G06F16/2455 |
代理公司: | 上海科盛知识产权代理有限公司 31225 | 代理人: | 廖程 |
地址: | 200002 *** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 并发 多线程 数据处理 方法 | ||
本发明涉及一种高并发多线程数据处理方法,包括以下步骤:预置活动商品总库存;用户参加活动,即按顺序给该用户分发对应的占位编号;获取用户购买记录信息,以确定已售商品数量;结合当前参加活动的用户总数、已售商品数量、当前占位编号以及总库存,确定出当前剩余库存;判断当前剩余库存是否大于或等于设定阈值,若判断为是,则输出信息告知用户可参加活动、购买商品;否则输出信息告知用户商品已售罄。与现有技术相比,本发明能够在高并发多线程情况下提高当前剩余库存计算的准确性,避免发生商品超卖、已售商品重复计算、商品无法全部售罄等问题。
技术领域
本发明涉及多线程数据处理技术领域,尤其是涉及一种高并发多线程数据处理方法。
背景技术
在金融交易业务场景下,当发生线上商品交易行为时,往往存在多个用户同时请求购买同一商品的情形,此时后台需要针对这种情况进行多线程数据处理。现有技术在进行多线程处理时,当发生多个线程共享同一份资源,由于多线程对于资源的获取是以一种竞态方式,所以在购物下单类似的场景中容易出现超卖的线程安全问题。
目前,通用做法是简单地将商品直接分发,比如每卖出一个商品,就将商品库存自动减少一个,直至商品库存减为0为止、停止售卖。具体做法是:预先将活动商品可售数量初始化,即为总库存;当用户参加活动时获取总库存,并在此基础上减去用户购买的商品数量,同时更新总库存值;最后会获取当前总库存、并判断值是否小于0,以此判断后续逻辑,即小于0时表示商品售罄,并告知用户;反之继续后续相关流程。
然而上述处理方式在实际应用中还存在以下问题:若当前购买的用户虽然购买了商品,但是存在很多用户仅仅是将商品添加到购物车,而没有立即支付,这样会导致商品库存被完全占用,但实际上又没有销售出去;此外,当用户长期占用库存不支付,也会导致后续客户无法购买;若在购买后一段时间内没有支付,也无法将占用库存返还。这些问题导致无法保证线上商品的可靠交易,难以满足实际业务场景需求。
发明内容
本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种高并发多线程数据处理方法,能够准确、可靠地实现线上商品交易活动。
本发明的目的可以通过以下技术方案来实现:一种高并发多线程数据处理方法,包括以下步骤:
S1、预置活动商品总库存;
S2、用户参加活动,即按顺序给该用户分发对应的占位编号;
S3、获取用户购买记录信息,以确定已售商品数量;
S4、结合当前参加活动的用户总数、已售商品数量、当前占位编号以及总库存,确定出当前剩余库存;
S5、判断当前剩余库存是否大于或等于设定阈值,若判断为是,则输出信息告知用户可参加活动、购买商品;否则输出信息告知用户商品已售罄。
进一步地,所述步骤S1具体是将总库存数量预先存储于数据库中。
进一步地,所述步骤S3中已售商品数量实时更新存储于数据库中。
进一步地,所述步骤S4具体包括以下步骤:
S41、根据当前参加活动的用户总数、已售商品数量、当前占位编号以及总库存,计算得到第一剩余库存;
S42、根据已售商品对应订单的支付状态,结合第一剩余库存,确定出第二剩余库存;
S43、将第二剩余库存减去当前占位编号,得到当前剩余库存。
进一步地,所述步骤S41中第一剩余库存的计算公式具体为:第一剩余库存=总库存—当前用户占位时的占位总数—已售商品数量+当前占位编号。
进一步地,所述步骤S42具体包括以下步骤:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海浦东发展银行股份有限公司,未经上海浦东发展银行股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210939190.8/2.html,转载请声明来源钻瓜专利网。