CN111048186A - 一种基于缓存和锁的库存预扣方法及系统 - Google Patents
一种基于缓存和锁的库存预扣方法及系统 Download PDFInfo
- Publication number
- CN111048186A CN111048186A CN201911083205.XA CN201911083205A CN111048186A CN 111048186 A CN111048186 A CN 111048186A CN 201911083205 A CN201911083205 A CN 201911083205A CN 111048186 A CN111048186 A CN 111048186A
- Authority
- CN
- China
- Prior art keywords
- cache
- inventory
- stock
- deduction
- lock
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 20
- 230000002596 correlated effect Effects 0.000 description 3
- 238000007726 management method Methods 0.000 description 2
- 238000012384 transportation and delivery Methods 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16H—HEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
- G16H40/00—ICT specially adapted for the management or administration of healthcare resources or facilities; ICT specially adapted for the management or operation of medical equipment or devices
- G16H40/20—ICT specially adapted for the management or administration of healthcare resources or facilities; ICT specially adapted for the management or operation of medical equipment or devices for the management or administration of healthcare resources or facilities, e.g. managing hospital staff or surgery rooms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/08—Logistics, e.g. warehousing, loading or distribution; Inventory or stock management
- G06Q10/087—Inventory or stock management, e.g. order filling, procurement or balancing against orders
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- General Business, Economics & Management (AREA)
- Health & Medical Sciences (AREA)
- Economics (AREA)
- Development Economics (AREA)
- Entrepreneurship & Innovation (AREA)
- Medical Informatics (AREA)
- Primary Health Care (AREA)
- Public Health (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Epidemiology (AREA)
- Biomedical Technology (AREA)
- General Health & Medical Sciences (AREA)
- Human Resources & Organizations (AREA)
- Marketing (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Strategic Management (AREA)
- Tourism & Hospitality (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供了库存管理领域的一种基于缓存和锁的库存预扣方法及系统,方法包括如下步骤:步骤S10、创建一用于对业务代码进行加锁的全局锁以及一用于对缓存进行刷新读取的独立线程池、并设定一时间间隔;步骤S20、通过所述独立线程池每隔时间间隔,判断所述全局锁是否加锁,若是,则不做刷新缓存操作,并结束流程;若否,则进入步骤S30;步骤S30、执行业务代码读取最新的库存预扣数并存储至缓存中,并对所述全局锁进行加锁;步骤S40、在内存中依据库存预扣数以及总库存量计算可领库存量。本发明的优点在于:实现提升库存预扣查询的速度,提升系统性能。
Description
技术领域
本发明涉及库存管理领域,特别指一种基于缓存和锁的库存预扣方法及系统。
背景技术
医疗机构的物流管理系统在使用的过程中,各个库房管理员发现科室人员存在乱领物品的情况,为了解决这个乱象,提出科室在领用物品的时候要能够获取到要申领物品所在仓库的可领库存量,超过这个数量则不允许申领,这就要求在获取仓库的库存量时要预扣除部分库存数量。需要预扣除的库存数量包括:1、当前被申领还未确认配送的数量;2、当前已经添加到配送单还未确认发货的数量;3、当前仓库已经生成还未最终审核的出库单的数量。
传统上,为了查询预扣除的库存数量,通过查询语句对仓库的库存量作连接,关联出上述三种情况的数量,最终返回当前库存数量减预扣除库存数量的结果。
然而,传统的方法存在如下缺点:由于用于关联查询预扣除库存数量的表均为核心业务的表,在业务高峰期的关联查询会造成拥堵,导致查询性能低下,且影响到其它业务模块的性能,导致影响科室人员的日常工作。
因此,如何提供一种基于缓存和锁的库存预扣方法及系统,实现提升库存预扣查询的速度,提升系统性能,成为一个亟待解决的问题。
发明内容
本发明要解决的技术问题,在于提供一种基于缓存和锁的库存预扣方法及系统,实现提升库存预扣查询的速度,提升系统性能。
第一方面,本发明提供了一种基于缓存和锁的库存预扣方法,包括如下步骤:
步骤S10、创建一用于对业务代码进行加锁的全局锁以及一用于对缓存进行刷新读取的独立线程池、并设定一时间间隔;
步骤S20、通过所述独立线程池每隔时间间隔,判断所述全局锁是否加锁,若是,则不做刷新缓存操作,并结束流程;若否,则进入步骤S30;
步骤S30、执行业务代码读取最新的库存预扣数并存储至缓存中,并对所述全局锁进行加锁;
步骤S40、在内存中依据库存预扣数以及总库存量计算可领库存量。
进一步地,所述步骤S40具体为:
将缓存中存储的库存预扣数加载至内存中,在内存将总库存量减去库存预扣数计算可领库存量。
第二方面,本发明提供了一种基于缓存和锁的库存预扣系统,包括如下模块:
参数配置模块、用于创建一用于对业务代码进行加锁的全局锁以及一用于对缓存进行刷新读取的独立线程池、并设定一时间间隔;
加锁判断模块、用于通过所述独立线程池每隔时间间隔,判断所述全局锁是否加锁,若是,则不做刷新缓存操作,并结束流程;若否,则进入库存预扣数读取模块;
库存预扣数读取模块、用于执行业务代码读取最新的库存预扣数并存储至缓存中,并对所述全局锁进行加锁;
可领库存量计算模块、用于在内存中依据库存预扣数以及总库存量计算可领库存量。
进一步地,所述可领库存量计算模块具体为:
将缓存中存储的库存预扣数加载至内存中,在内存将总库存量减去库存预扣数计算可领库存量。
本发明的优点在于:
1、通过将最新的库存预扣数存储至缓存中,读取缓存中存储的库存预扣数后在内存中进行计算,显著提升了库存预扣查询的速度,提升了系统的性能。
2、通过设置所述全局锁,在所述全局锁处于加锁状态时不进行刷新操作,避免在业务高峰期需要频繁刷新缓存的时候执行大量重复的缓存刷新而占用大量服务器资源。
3、传统上,由于查询速度慢,为了避免频繁查询,前端增加了延迟查询以避免键盘输入一次查询一次,影响了查询速度;本发明不需要增加延迟查询,与传统相比进一步的提升了库存预扣查询的速度。
附图说明
下面参照附图结合实施例对本发明作进一步的说明。
图1是本发明一种基于缓存和锁的库存预扣方法的流程图。
具体实施方式
请参照图1所示,本发明一种基于缓存和锁的库存预扣方法的较佳实施例,包括如下步骤:
步骤S10、创建一用于对业务代码进行加锁的全局锁以及一用于对缓存进行刷新读取的独立线程池、并设定一时间间隔;通过设置所述全局锁,在所述全局锁处于加锁状态时不进行刷新操作,避免在业务高峰期需要频繁刷新缓存的时候执行大量重复的缓存刷新而占用大量服务器资源;
步骤S20、通过所述独立线程池每隔时间间隔,判断所述全局锁是否加锁,若是,则不做刷新缓存操作,并结束流程;若否,则进入步骤S30;
步骤S30、执行业务代码读取最新的库存预扣数并存储至缓存中,并对所述全局锁进行加锁;通过将最新的库存预扣数存储至缓存中,读取缓存中存储的库存预扣数后在内存中进行计算,显著提升了库存预扣查询的速度,提升了系统的性能;库存预扣数的查询语句只保留库存查询部分,减少大量关键表的关联查询,大大缩短了查询时间;业务代码想要刷新缓存只要解锁全局锁即可,没有额外的性能损耗;
步骤S40、在内存中依据库存预扣数以及总库存量计算可领库存量。
所述步骤S40具体为:
将缓存中存储的库存预扣数加载至内存中,在内存将总库存量减去库存预扣数计算可领库存量。
本发明一种基于缓存和锁的库存预扣系统的较佳实施例,包括如下模块:
参数配置模块、用于创建一用于对业务代码进行加锁的全局锁以及一用于对缓存进行刷新读取的独立线程池、并设定一时间间隔;通过设置所述全局锁,在所述全局锁处于加锁状态时不进行刷新操作,避免在业务高峰期需要频繁刷新缓存的时候执行大量重复的缓存刷新而占用大量服务器资源;
加锁判断模块、用于通过所述独立线程池每隔时间间隔,判断所述全局锁是否加锁,若是,则不做刷新缓存操作,并结束流程;若否,则进入库存预扣数读取模块;
库存预扣数读取模块、用于执行业务代码读取最新的库存预扣数并存储至缓存中,并对所述全局锁进行加锁;通过将最新的库存预扣数存储至缓存中,读取缓存中存储的库存预扣数后在内存中进行计算,显著提升了库存预扣查询的速度,提升了系统的性能;库存预扣数的查询语句只保留库存查询部分,减少大量关键表的关联查询,大大缩短了查询时间;业务代码想要刷新缓存只要解锁全局锁即可,没有额外的性能损耗;
可领库存量计算模块、用于在内存中依据库存预扣数以及总库存量计算可领库存量。
所述可领库存量计算模块具体为:
将缓存中存储的库存预扣数加载至内存中,在内存将总库存量减去库存预扣数计算可领库存量。
综上所述,本发明的优点在于:
1、通过将最新的库存预扣数存储至缓存中,读取缓存中存储的库存预扣数后在内存中进行计算,显著提升了库存预扣查询的速度,提升了系统的性能。
2、通过设置所述全局锁,在所述全局锁处于加锁状态时不进行刷新操作,避免在业务高峰期需要频繁刷新缓存的时候执行大量重复的缓存刷新而占用大量服务器资源。
3、传统上,由于查询速度慢,为了避免频繁查询,前端增加了延迟查询以避免键盘输入一次查询一次,影响了查询速度;本发明不需要增加延迟查询,与传统相比进一步的提升了库存预扣查询的速度。
虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。
Claims (4)
1.一种基于缓存和锁的库存预扣方法,其特征在于:包括如下步骤:
步骤S10、创建一用于对业务代码进行加锁的全局锁以及一用于对缓存进行刷新读取的独立线程池、并设定一时间间隔;
步骤S20、通过所述独立线程池每隔时间间隔,判断所述全局锁是否加锁,若是,则不做刷新缓存操作,并结束流程;若否,则进入步骤S30;
步骤S30、执行业务代码读取最新的库存预扣数并存储至缓存中,并对所述全局锁进行加锁;
步骤S40、在内存中依据库存预扣数以及总库存量计算可领库存量。
2.如权利要求1所述的一种基于缓存和锁的库存预扣方法,其特征在于:所述步骤S40具体为:
将缓存中存储的库存预扣数加载至内存中,在内存将总库存量减去库存预扣数计算可领库存量。
3.一种基于缓存和锁的库存预扣系统,其特征在于:包括如下模块:
参数配置模块、用于创建一用于对业务代码进行加锁的全局锁以及一用于对缓存进行刷新读取的独立线程池、并设定一时间间隔;
加锁判断模块、用于通过所述独立线程池每隔时间间隔,判断所述全局锁是否加锁,若是,则不做刷新缓存操作,并结束流程;若否,则进入库存预扣数读取模块;
库存预扣数读取模块、用于执行业务代码读取最新的库存预扣数并存储至缓存中,并对所述全局锁进行加锁;
可领库存量计算模块、用于在内存中依据库存预扣数以及总库存量计算可领库存量。
4.如权利要求3所述的一种基于缓存和锁的库存预扣系统,其特征在于:所述可领库存量计算模块具体为:
将缓存中存储的库存预扣数加载至内存中,在内存将总库存量减去库存预扣数计算可领库存量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911083205.XA CN111048186A (zh) | 2019-11-07 | 2019-11-07 | 一种基于缓存和锁的库存预扣方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911083205.XA CN111048186A (zh) | 2019-11-07 | 2019-11-07 | 一种基于缓存和锁的库存预扣方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111048186A true CN111048186A (zh) | 2020-04-21 |
Family
ID=70231988
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911083205.XA Pending CN111048186A (zh) | 2019-11-07 | 2019-11-07 | 一种基于缓存和锁的库存预扣方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111048186A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105468690A (zh) * | 2015-11-17 | 2016-04-06 | 中国建设银行股份有限公司 | 一种库存数据处理方法和装置 |
CN105630819A (zh) * | 2014-11-03 | 2016-06-01 | 阿里巴巴集团控股有限公司 | 一种缓存数据的刷新方法和装置 |
CN105678609A (zh) * | 2016-02-26 | 2016-06-15 | 北京京东尚科信息技术有限公司 | 一种基于不同虚拟标识单元实时展示状态的方法与系统 |
CN108334505A (zh) * | 2017-01-19 | 2018-07-27 | 阿里巴巴集团控股有限公司 | 一种数据处理方法、装置、服务器及库存系统 |
WO2019164308A1 (ko) * | 2018-02-22 | 2019-08-29 | 주식회사 은성 | 의약품 판매관리 방법, 판매관리 시스템, 이를 위한 컴퓨터 프로그램 및 의약품 정보 시트 |
-
2019
- 2019-11-07 CN CN201911083205.XA patent/CN111048186A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105630819A (zh) * | 2014-11-03 | 2016-06-01 | 阿里巴巴集团控股有限公司 | 一种缓存数据的刷新方法和装置 |
CN105468690A (zh) * | 2015-11-17 | 2016-04-06 | 中国建设银行股份有限公司 | 一种库存数据处理方法和装置 |
CN105678609A (zh) * | 2016-02-26 | 2016-06-15 | 北京京东尚科信息技术有限公司 | 一种基于不同虚拟标识单元实时展示状态的方法与系统 |
CN108334505A (zh) * | 2017-01-19 | 2018-07-27 | 阿里巴巴集团控股有限公司 | 一种数据处理方法、装置、服务器及库存系统 |
WO2019164308A1 (ko) * | 2018-02-22 | 2019-08-29 | 주식회사 은성 | 의약품 판매관리 방법, 판매관리 시스템, 이를 위한 컴퓨터 프로그램 및 의약품 정보 시트 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2797013B1 (en) | Database update execution according to power management schemes | |
CN102156717B (zh) | 一种将实体对象映射到数据库中的方法及装置 | |
US9600559B2 (en) | Data processing for database aggregation operation | |
CN108196959B (zh) | Etl系统的资源管理方法及装置 | |
CN104182435A (zh) | 基于数据缺失标记的信息检索系统及方法 | |
CN106650501A (zh) | 数据库访问控制方法和装置 | |
CN111048186A (zh) | 一种基于缓存和锁的库存预扣方法及系统 | |
CN107678856B (zh) | 一种处理业务实体中增量信息的方法及装置 | |
CN111523844B (zh) | 仓储管理方法、装置、服务器及可读存储介质 | |
CN109725852B (zh) | 一种限流计数的优化方法及终端 | |
CN112000670A (zh) | 一种多线程程序数据统一管理方法、系统及电子设备 | |
CN115525797A (zh) | 数据库数据查询方法、装置、设备及存储介质 | |
CN115456634A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN115422231A (zh) | 一种数据页处理方法、装置、电子设备及介质 | |
CN115114612A (zh) | 访问处理方法、装置、电子设备以及存储介质 | |
CN112581057A (zh) | 智能备货方法、装置、计算机设备及存储介质 | |
CN112749176A (zh) | 库存数据的同步处理方法及装置、存储介质、服务器 | |
US7805326B2 (en) | System to resolve scheduling constraints | |
CN116756135B (zh) | 一种数据清理方法、装置、设备及介质 | |
CN113486113B (zh) | 一种基于Kettle的增量同步数据的方法及终端 | |
CN116775667B (zh) | 一种关联数据的处理方法及装置 | |
CN116610729B (zh) | 数据库智能统计信息管理方法、系统、设备及介质 | |
CN115936581A (zh) | 一种库存理货信息获取方法及系统 | |
KR20190022443A (ko) | 네트워크 액티비티 인디케이터의 프레젠테이션 방법, 전자장치, 컴퓨터 판독 가능한 저장매체 및 시스템 | |
CN117350811A (zh) | 订单处理方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200421 |