[发明专利]一种基于缓存和锁的库存预扣方法及系统在审
申请号: | 201911083205.X | 申请日: | 2019-11-07 |
公开(公告)号: | CN111048186A | 公开(公告)日: | 2020-04-21 |
发明(设计)人: | 黄家昌;董文伟;邱道椿 | 申请(专利权)人: | 福建亿能达信息技术股份有限公司 |
主分类号: | G16H40/20 | 分类号: | G16H40/20;G06Q10/08 |
代理公司: | 福州市鼓楼区京华专利事务所(普通合伙) 35212 | 代理人: | 林燕 |
地址: | 350000 福建省福州市鼓楼*** | 国省代码: | 福建;35 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 缓存 库存 方法 系统 | ||
本发明提供了库存管理领域的一种基于缓存和锁的库存预扣方法及系统,方法包括如下步骤:步骤S10、创建一用于对业务代码进行加锁的全局锁以及一用于对缓存进行刷新读取的独立线程池、并设定一时间间隔;步骤S20、通过所述独立线程池每隔时间间隔,判断所述全局锁是否加锁,若是,则不做刷新缓存操作,并结束流程;若否,则进入步骤S30;步骤S30、执行业务代码读取最新的库存预扣数并存储至缓存中,并对所述全局锁进行加锁;步骤S40、在内存中依据库存预扣数以及总库存量计算可领库存量。本发明的优点在于:实现提升库存预扣查询的速度,提升系统性能。
技术领域
本发明涉及库存管理领域,特别指一种基于缓存和锁的库存预扣方法及系统。
背景技术
医疗机构的物流管理系统在使用的过程中,各个库房管理员发现科室人员存在乱领物品的情况,为了解决这个乱象,提出科室在领用物品的时候要能够获取到要申领物品所在仓库的可领库存量,超过这个数量则不允许申领,这就要求在获取仓库的库存量时要预扣除部分库存数量。需要预扣除的库存数量包括:1、当前被申领还未确认配送的数量;2、当前已经添加到配送单还未确认发货的数量;3、当前仓库已经生成还未最终审核的出库单的数量。
传统上,为了查询预扣除的库存数量,通过查询语句对仓库的库存量作连接,关联出上述三种情况的数量,最终返回当前库存数量减预扣除库存数量的结果。
然而,传统的方法存在如下缺点:由于用于关联查询预扣除库存数量的表均为核心业务的表,在业务高峰期的关联查询会造成拥堵,导致查询性能低下,且影响到其它业务模块的性能,导致影响科室人员的日常工作。
因此,如何提供一种基于缓存和锁的库存预扣方法及系统,实现提升库存预扣查询的速度,提升系统性能,成为一个亟待解决的问题。
发明内容
本发明要解决的技术问题,在于提供一种基于缓存和锁的库存预扣方法及系统,实现提升库存预扣查询的速度,提升系统性能。
第一方面,本发明提供了一种基于缓存和锁的库存预扣方法,包括如下步骤:
步骤S10、创建一用于对业务代码进行加锁的全局锁以及一用于对缓存进行刷新读取的独立线程池、并设定一时间间隔;
步骤S20、通过所述独立线程池每隔时间间隔,判断所述全局锁是否加锁,若是,则不做刷新缓存操作,并结束流程;若否,则进入步骤S30;
步骤S30、执行业务代码读取最新的库存预扣数并存储至缓存中,并对所述全局锁进行加锁;
步骤S40、在内存中依据库存预扣数以及总库存量计算可领库存量。
进一步地,所述步骤S40具体为:
将缓存中存储的库存预扣数加载至内存中,在内存将总库存量减去库存预扣数计算可领库存量。
第二方面,本发明提供了一种基于缓存和锁的库存预扣系统,包括如下模块:
参数配置模块、用于创建一用于对业务代码进行加锁的全局锁以及一用于对缓存进行刷新读取的独立线程池、并设定一时间间隔;
加锁判断模块、用于通过所述独立线程池每隔时间间隔,判断所述全局锁是否加锁,若是,则不做刷新缓存操作,并结束流程;若否,则进入库存预扣数读取模块;
库存预扣数读取模块、用于执行业务代码读取最新的库存预扣数并存储至缓存中,并对所述全局锁进行加锁;
可领库存量计算模块、用于在内存中依据库存预扣数以及总库存量计算可领库存量。
进一步地,所述可领库存量计算模块具体为:
将缓存中存储的库存预扣数加载至内存中,在内存将总库存量减去库存预扣数计算可领库存量。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于福建亿能达信息技术股份有限公司,未经福建亿能达信息技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911083205.X/2.html,转载请声明来源钻瓜专利网。