CN112925851B - 一种单号处理方法、装置、电子设备和存储介质 - Google Patents
一种单号处理方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN112925851B CN112925851B CN202110220603.2A CN202110220603A CN112925851B CN 112925851 B CN112925851 B CN 112925851B CN 202110220603 A CN202110220603 A CN 202110220603A CN 112925851 B CN112925851 B CN 112925851B
- Authority
- CN
- China
- Prior art keywords
- storage pool
- numbers
- storage
- target
- single numbers
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- 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/083—Shipping
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Economics (AREA)
- Development Economics (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Entrepreneurship & Innovation (AREA)
- Human Resources & Organizations (AREA)
- Marketing (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Strategic Management (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及计算机技术领域,公开了一种单号处理方法、装置、电子设备和存储介质,该方法应用于包含多级存储池的平台侧系统,该方法包括:接收用户获取目标数量的单号的单号获取请求;基于该单号获取请求对应的目标数量,按照所述多级存储池的优先级由高到低的顺序获取多级存储池中存储的承运商系统的单号;若从所述多级存储池获取的单号数量达到所述目标数量,则停止获取单号;若从所述多级存储池获取的单号数量没有达到所述目标数量,则从所述承运商系统获取单号,直到获取的单号数量达到所述目标数量;上述非优先级最低的存储池存储的单号,是从优先级低的存储池和/或承运商系统获取的;优先级最低的存储池存储的单号是从承运商系统获取的。
Description
技术领域
本申请涉及计算机技术领域,特别涉及一种单号处理方法、装置、电子设备和存储介质。
背景技术
针对非自建物流的平台,在供应链环节要依赖第三方承运商,例如非自建物流的自营电商,通过对接多个第三方承运商,向用户提供完善且优质的配送服务。这些平台需要从第三方承运商获取单号,以便基于单号进行数据流转或者生成面单等。
相关技术中,非自建物流的平台在使用单号时,通过向外部系统(第三方承运商的系统)发送请求,实时从外部系统获取单号。
然而,上述方案中非自建物流的平台可能会频繁向外部系统发送请求,外部系统在短时间内接收大量请求,处理压力较大,请求超时、请求失败的情况时有发生。
发明内容
本申请提供了一种单号处理方法、装置、电子设备和存储介质,用以减小承运商系统的处理压力。
第一方面,本申请实施例提供一种单号处理方法,应用于平台侧系统,所述平台侧系统包含多级存储池,所述方法包括:
接收用户获取目标数量的单号的单号获取请求;
基于接收的单号获取请求对应的目标数量,按照所述多级存储池的优先级由高到低的顺序,从所述多级存储池中的部分或者全部存储池获取存储的承运商系统的单号;其中,任一非优先级最低的存储池存储的单号,是从比所述存储池优先级低的其他存储池和/或所述承运商系统获取的;优先级最低的存储池存储的单号是从所述承运商系统获取的;
若从所述多级存储池获取的单号数量达到所述目标数量,则停止获取单号;若从所述多级存储池获取的单号数量没有达到所述目标数量,则从所述承运商系统获取单号,直到获取的单号数量达到所述目标数量。
在一些可选的实施方式中,所述平台侧系统包含第一存储池以及第二存储池,且所述第一存储池的优先级高于所述第二存储池;所述第一存储池采用分布式内存数据库,所述第二存储池采用Mysql(关系型数据库管理系统)数据库。
在一些可选的实施方式中,基于接收的单号获取请求对应的目标数量,按照所述多级存储池的优先级由高到低的顺序,从所述多级存储池中的部分或者全部存储池获取存储的承运商系统的单号,包括:
若所述第一存储池可用,则基于所述目标数量,从所述第一存储池获取单号;若从所述第一存储池获取的单号数量小于所述目标数量,则判断所述第二存储池是否可用;若确定所述第二存储池可用,则基于所述目标数量以及从所述第一存储池获取的单号数量的差值,从所述第二存储池获取单号;或者
若所述第一存储池不可用,则判断所述第二存储池是否可用;若确定所述第二存储池可用,则基于所述目标数量从所述第二存储池获取单号。
在一些可选的实施方式中,在接收到所述单号获取请求之后,还包括:
判断是否有历史单号获取请求的标识与接收的单号获取请求的标识相同;
若没有相同的,则执行从所述多级存储池中的部分或者全部存储池获取存储的承运商系统的单号的步骤;
若有相同的,则确定相同标识的历史单号获取请求所获取的单号的信息。
在一些可选的实施方式中,所述方法还包括:
若确定所述多级存储池需要补充单号,则从优先级最高的存储池开始,依次补充存储池中的单号。
在一些可选的实施方式中,在依次补充存储池中的单号之前,所述方法还包括:
确定需要补充单号的目标维度,并请求所述目标维度对应的分布式锁;其中,同一维度中的单号属于相同承运商系统,且类型相同;
在获取所述目标维度对应的分布式锁后,执行所述依次补充存储池中的单号的步骤。
在一些可选的实施方式中,通过以下方式确定所述多级存储池需要补充单号:
针对任一存储池,若所述存储池中剩余单号数量,与当前补充期所述存储池补充后的单号数量之比小于预设比例,则确定所述多级存储池需要补充下一补充期的单号;
其中,针对任一存储池,一个补充期所述存储池补充后的单号数量是所述补充期优先级高一级的存储池补充后的单号数量的预设倍数;一个补充期是从依次补充存储池中的单号开始的时刻,到下一次依次补充存储池中的单号开始的时刻。
在一些可选的实施方式中,所述平台侧系统包含第一存储池以及第二存储池,且所述第一存储池的优先级高于所述第二存储池;
从优先级最高的存储池开始,依次补充存储池中的单号,包括:
基于表征所述第一存储池中单号消耗速度的消耗补充量,以及前一补充期所述第一存储池的历史预测数量,得到当前补充期所述第一存储池的第一预测数量;
基于所述第一预测数量从所述第二存储池和/或所述承运商系统获取单号,并补充到所述第一存储池中;
基于当前补充期所述第一存储池补充后的单号数量、所述预设倍数以及所述第二存储池中剩余单号数量,确定所述第二存储池的第二预测数量;
基于所述第二预测数量从所述承运商系统获取单号,并补充到所述第二存储池中。
在一些可选的实施方式中,通过以下方式得到所述消耗补充量:
其中,所述Pn′为所述消耗补充量,lastSaven-1为前一补充期所述第一存储池中补充后的单号数量,cacheNum为所述第一存储池中剩余单号数量,Tn为当前补充期的起始时刻,Tn-1为前一补充期的起始时刻,BaseT为预设的持续时长。
在一些可选的实施方式中,基于所述第一预测数量从所述第二存储池和/或所述承运商系统获取单号,包括:
基于所述第一预测数量以及所述第一存储池的存储上限数量,确定目标存储数量;
若从所述第二存储池获取的单号数量达到所述目标存储数量,则停止获取单号;若从所述第二存储池获取的单号数量没有达到所述目标存储数量,则从所述承运商系统获取单号,直到获取的单号数量达到所述目标存储数量。
在一些可选的实施方式中,通过以下方式确定所述第二预测数量:
第二方面,本申请实施例提供一种单号处理装置,所述单号处理装置连接多级存储池,所述单号处理装置包括:
接收模块,用于接收用户获取目标数量的单号的单号获取请求;
单号获取模块,用于基于接收的单号获取请求对应的目标数量,按照所述多级存储池的优先级由高到低的顺序,从所述多级存储池中的部分或者全部存储池获取存储的承运商系统的单号;其中,任一非优先级最低的存储池存储的单号,是从比所述存储池优先级低的其他存储池和/或所述承运商系统获取的;优先级最低的存储池存储的单号是从所述承运商系统获取的;
所述单号获取模块,还用于若从所述多级存储池获取的单号数量达到所述目标数量,则停止获取单号;若从所述多级存储池获取的单号数量没有达到所述目标数量,则从所述承运商系统获取单号,直到获取的单号数量达到所述目标数量。
第三方面,本申请实施例提供一种电子设备,包括:
多级存储池,用于存储承运商系统的单号;
处理器,用于:
接收用户获取目标数量的单号的单号获取请求;
基于接收的单号获取请求对应的目标数量,按照所述多级存储池的优先级由高到低的顺序,从所述多级存储池中的部分或者全部存储池获取存储的承运商系统的单号;其中,任一非优先级最低的存储池存储的单号,是从比所述存储池优先级低的其他存储池和/或所述承运商系统获取的;优先级最低的存储池存储的单号是从所述承运商系统获取的;
若从所述多级存储池获取的单号数量达到所述目标数量,则停止获取单号;若从所述多级存储池获取的单号数量没有达到所述目标数量,则从所述承运商系统获取单号,直到获取的单号数量达到所述目标数量。
在一些可选的实施方式中,所述多级存储池为第一存储池以及第二存储池,且所述第一存储池的优先级高于所述第二存储池;所述第一存储池采用分布式内存数据库,所述第二存储池采用Mysql数据库。
在一些可选的实施方式中,所述处理器具体用于:
若所述第一存储池可用,则基于所述目标数量,从所述第一存储池获取单号;若从所述第一存储池获取的单号数量小于所述目标数量,则判断所述第二存储池是否可用;若确定所述第二存储池可用,则基于所述目标数量以及从所述第一存储池获取的单号数量的差值,从所述第二存储池获取单号;或者
若所述第一存储池不可用,则判断所述第二存储池是否可用;若确定所述第二存储池可用,则基于所述目标数量从所述第二存储池获取单号。
在一些可选的实施方式中,在接收到所述单号获取请求之后,所述处理器还用于:
判断是否有历史单号获取请求的标识与接收的单号获取请求的标识相同;
若没有相同的,则执行从所述多级存储池中的部分或者全部存储池获取存储的承运商系统的单号的步骤;
若有相同的,则确定相同标识的历史单号获取请求所获取的单号的信息。
在一些可选的实施方式中,所述处理器还用于:
若确定所述多级存储池需要补充单号,则从优先级最高的存储池开始,依次补充存储池中的单号。
在一些可选的实施方式中,在依次补充存储池中的单号之前,所述处理器还用于:
确定需要补充单号的目标维度,并请求所述目标维度对应的分布式锁;其中,同一维度中的单号属于相同承运商系统,且类型相同;
在获取所述目标维度对应的分布式锁后,执行所述依次补充存储池中的单号的步骤。
在一些可选的实施方式中,所述处理器具体用于:
针对任一存储池,若所述存储池中剩余单号数量,与当前补充期所述存储池补充后的单号数量之比小于预设比例,则确定所述多级存储池需要补充下一补充期的单号;
其中,针对任一存储池,一个补充期所述存储池补充后的单号数量是所述补充期优先级高一级的存储池补充后的单号数量的预设倍数;一个补充期是从依次补充存储池中的单号开始的时刻,到下一次依次补充存储池中的单号开始的时刻。
在一些可选的实施方式中,所述多级存储池为第一存储池以及第二存储池,且所述第一存储池的优先级高于所述第二存储池;
所述处理器具体用于:
基于表征所述第一存储池中单号消耗速度的消耗补充量,以及前一补充期所述第一存储池的历史预测数量,得到当前补充期所述第一存储池的第一预测数量;
基于所述第一预测数量从所述第二存储池和/或所述承运商系统获取单号,并补充到所述第一存储池中;
基于当前补充期所述第一存储池补充后的单号数量、所述预设倍数以及所述第二存储池中剩余单号数量,确定所述第二存储池的第二预测数量;
基于所述第二预测数量从所述承运商系统获取单号,并补充到所述第二存储池中。
在一些可选的实施方式中,所述处理器用于通过以下方式得到所述消耗补充量:
其中,所述Pn′为所述消耗补充量,lastSaven-1为前一补充期所述第一存储池中补充后的单号数量,cacheNum为所述第一存储池中剩余单号数量,Tn为当前补充期的起始时刻,Tn-1为前一补充期的起始时刻,BaseT为预设的持续时长。/>
在一些可选的实施方式中,所述处理器具体用于:
基于所述第一预测数量以及所述第一存储池的存储上限数量,确定目标存储数量;
若从所述第二存储池获取的单号数量达到所述目标存储数量,则停止获取单号;若从所述第二存储池获取的单号数量没有达到所述目标存储数量,则从所述承运商系统获取单号,直到获取的单号数量达到所述目标存储数量。
在一些可选的实施方式中,所述处理器用于通过以下方式确定所述第二预测数量:
第四方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时,实现如上述第一方面任一项所述的单号处理方法。
本申请实施例提供的单号处理方法、装置、电子设备和存储介质,具有以下有益效果:
通过多级存储池存储承运商系统的单号,在收到单号获取请求后,优先从多级存储池获取单号,避免了频繁向承运商系统发送请求,减小承运商系统的处理压力;从多级存储池获取单号是按照多级存储池优先级由高到低的顺序,从多级存储池中的部分或者全部存储池获取存储的单号,当优先级高的存储池异常、禁用或者存储的单号不足时,还可从优先级低的存储池获取存储的单号,因此多级存储池具备较强的缓冲能力,可靠性较强。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的应用场景示意图;
图2是根据一示例性实施例示出的一种单号处理方法流程示意图;
图3是根据一示例性实施例示出的另一种单号处理方法流程示意图;
图4是根据一示例性实施例示出的一种补充单号方法流程示意图;
图5是根据一示例性实施例示出的单号处理装置示意图;
图6是根据一示例性实施例示出的电子设备结构示意图;
图7是根据一示例性实施例示出的程序产品示意图。
具体实施方式
下面将参考若干示例性实施方式来描述本申请的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本申请,而并非以任何方式限制本申请的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本领域技术人员知道,本申请的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
在本文中,需要理解的是,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
下面参考本申请的若干代表性实施方式,详细阐释本申请的原理和精神。
发明概述
本申请发明人发现,非自建物流的平台获取单号的基本过程为:直接向承运商系统发送请求,实时从承运商系统获取单号。
然而,承运商系统可能对接多个非自建物流的平台,并且一些非自建物流的平台可能在短时间内发送多次请求,这就会造成承运商系统在短时间内接收大量请求。承运商系统在短时间内接收大量请求,会有较大的处理压力,对于一些处理能力较差的承运商系统,在短时间内接收大量请求后难以进行处理,进而出现请求超时、请求失败的问题。如果承运商系统出现故障,非自建物流的平台没有任何获取单号的缓冲余地,非自建物流的平台也就无法获取单号,影响数据流转或者生成面单。
鉴于此,本申请实施例提供了一种单号处理方法,通过多级存储池存储承运商系统的单号,在收到单号获取请求后,优先从多级存储池获取单号,避免了频繁向承运商系统发送请求,减小承运商系统的处理压力;从多级存储池获取单号是按照多级存储池优先级由高到低的顺序,从多级存储池中的部分或者全部存储池获取存储的单号,当优先级高的存储池异常、禁用或者存储的单号不足时,还可从优先级低的存储池获取存储的单号,因此多级存储池具备较强的缓冲能力,可靠性较强。
在介绍了本申请的基本原理之后,下面具体介绍本申请的各种非限制性实施方式。
应用场景总览
首先参考图1,其为本申请实施例的应用场景示意图。该应用场景中包括平台侧系统110以及承运商系统,图1以一个平台侧系统以及两个承运商系统(承运商系统1201以及承运商系统1202)为例,实际应用中一个平台侧系统可连接一个或者多个承运商系统,一个承运商系统也可连接一个或多个平台侧系统。
平台侧系统110与承运商系统之间通过网络进行通信连接,该网络可以为局域网、广域网等。
其中,平台侧系统110包含多级存储池,图1以三级存储池(第一存储池、第二存储池以及第三存储池)为例,但本申请中多级存储池并不以此为限。
平台侧系统110接收用户获取目标数量的单号的单号获取请求;
基于接收的单号获取请求对应的目标数量,按照所述多级存储池的优先级由高到低的顺序,从所述多级存储池中的部分或者全部存储池获取存储的承运商系统的单号;其中,任一非优先级最低的存储池存储的单号,是从比所述存储池优先级低的其他存储池和/或所述承运商系统获取的;优先级最低的存储池存储的单号是从所述承运商系统获取的;
若从所述多级存储池获取的单号数量达到所述目标数量,则停止获取单号;若从所述多级存储池获取的单号数量没有达到所述目标数量,则从所述承运商系统获取单号,直到获取的单号数量达到所述目标数量。
上述应用场景只是实现本申请实施例的应用场景的示例,本申请实施例并不限于上述应用场景。
示例性方法
图2是根据一示例性实施例示出的一种单号处理方法的流程示意图,应用于上述平台侧系统,该方法包括以下步骤:
步骤S201:接收用户获取目标数量的单号的单号获取请求。
实施中,在进行数据流转或者生成面单时,需要获取目标数量的承运商系统的单号,用户向平台侧系统发送获取目标数量的单号的单号获取请求。
上述目标数量可以为一个或者多个,即本实施例支持单个单号获取以及多个单号批量获取。
步骤S202:基于接收的单号获取请求对应的目标数量,按照所述多级存储池的优先级由高到低的顺序,从所述多级存储池中的部分或者全部存储池获取存储的承运商系统的单号。
其中,任一非优先级最低的存储池存储的单号,是从比所述存储池优先级低的其他存储池和/或所述承运商系统获取的;优先级最低的存储池存储的单号是从所述承运商系统获取的。
以上述第一存储池、第二存储池以及第三存储池为例,第一存储池优先级高于第二存储池,第二存储池优先级高于第三存储池。第一存储池存储的单号是从第二存储池、第三存储池和承运商系统之中的任一或多个获取的(在补充第一存储池的单号时分如下情况:1.第二存储池和第三存储池都可用,先从第二存储池获取单号,当获取的单号不足时继续从第三存储池获取单号,如果获取的单号还是不足继续从承运商系统获取单号;2.第二存储池可用和第三存储池不可用,先从第二存储池获取单号,当获取的单号不足时继续从承运商系统获取单号;3.第二存储池不可用和第三存储池可用,先从第三存储池获取单号,当获取的单号不足时继续从承运商系统获取单号;4.第二存储池和第三存储池都不可用,直接从承运商系统获取单号);第二存储池存储的单号是从第三存储池和/或承运商系统获取的(在补充第二存储池的单号时,如果第三存储池可用,先从第三存储池获取单号,当获取的单号不足时继续从承运商系统获取单号;如果第三存储池不可用,直接从承运商系统获取单号);第三存储池存储的单号是直接从承运商系统获取的。
作为一种可选的实施方式,所述平台侧系统包含第一存储池以及第二存储池,且所述第一存储池的优先级高于所述第二存储池;所述第一存储池采用分布式内存数据库,所述第二存储池采用Mysql数据库。
实施中,平台侧系统优先从第一存储池获取单号,需要保证第一存储池的性能,基于此,第一存储池可采用高性能的分布式内存数据库,分布式内存数据库虽然存量有限,但其与业务应用分离,响应速度快,从而提高单号获取效率。本实施例对分布式内存数据库具体实现方式不做限定,如Redis数据库;
在第一存储池异常、禁用或者存储的单号不足时,再从第二存储池获取单号,需要保证第二存储池中单号的存量,基于此,第二存储池可采用速度稍慢但存量较大的Mysql数据库。
作为一个实施例,当系统设置三级存储池时,第三存储池也可采用与第二存储池相同的存储类型,或者可以采用不同的类型。
作为一种可选的实施方式,基于接收的单号获取请求对应的目标数量,按照所述多级存储池的优先级由高到低的顺序,从所述多级存储池中的部分或者全部存储池获取存储的承运商系统的单号,包括:
若所述第一存储池可用,则基于所述目标数量,从所述第一存储池获取单号;若从所述第一存储池获取的单号数量小于所述目标数量,则判断所述第二存储池是否可用;若确定所述第二存储池可用,则基于所述目标数量以及从所述第一存储池获取的单号数量的差值,从所述第二存储池获取单号;或者
若所述第一存储池不可用,则判断所述第二存储池是否可用;若确定所述第二存储池可用,则基于所述目标数量从所述第二存储池获取单号。
示例性的,第一存储池性能好,如果第一存储池可用,先基于目标数量从第一存储池获取单号;但第一存储池存量有限,可能从第一存储池获取的单号数量小于目标数量,如果第二存储池可用就继续从第二存储池获取单号,由于第二存储池存量较大,一般情况下能从第二存储池获取到足量的单号;
另外,在第一存储池不可用的情况下(禁用/异常),如果第二存储池可用可直接从第二存储池获取单号。
一些具体的实施方式中,第一存储池在逻辑上设计成一个先进先出的队列,从而确保第一存储池中先存储的单号能被最先使用(被获取),已被使用的单号从队列中移走(即删除第一存储池中被获取的单号);第二存储池存储有包含未使用单号的单号存储表,以及包含已使用单号的单号历史表。
步骤S203:若从所述多级存储池获取的单号数量达到所述目标数量,则停止获取单号;若从所述多级存储池获取的单号数量没有达到所述目标数量,则从所述承运商系统获取单号,直到获取的单号数量达到所述目标数量。
实施中,一般情况下能从多级存储池获取到目标数量的单号,就无需向承运商系统请求单号,避免了频繁向承运商系统发送请求,减小承运商系统的处理压力;但在另外一些情况下,不能从多级存储池获取到目标数量的单号,需要向承运商系统请求单号。
一些可选的实施方式中,上述单号获取请求对应至少一个维度的目标数量,其中,同一维度中的单号属于相同承运商系统,且类型相同,如属于上述承运商系统1201的母单号属于第一维度的单号,属于上述承运商系统1201的子单号属于第二维度的单号,属于上述承运商系统1202的母单号属于第三维度的单号,属于上述承运商系统1202的子单号属于第四维度的单号。上述四个维度的单号只是示例性说明,本申请并不以此为限。
对应的,从所述承运商系统获取单号,可通过但不限于如下方式实现:
将单号获取请求对应维度的目标数量以及从多级存储池获取的单号数量的差值,确定为对应维度的获取数量;
向对应维度的承运商系统发送包含对应维度的类型和获取数量的请求,并接收承运商系统基于该请求提供的单号。
还是以上述四个维度的单号为例:
单号获取请求对应第一维度的目标数量为100个,从多级存储池获取的第一维度的单号数量为80个,还差20个第一维度的单号,将20个确定为第一维度对应的获取数量;
向第一维度对应承运商系统(上述承运商系统1201)发送包含第一维度的类型(母单号)和获取数量(20个)的请求,承运商系统1201在收到该请求后,向平台侧系统返回20个第一维度的单号。
一些可选的实施方式中,如果承运商系统因故障而无法提供单号时,承运商系统可通过预设告警方式进行告警,以使运维人员及时对承运商系统进行故障处理。
本申请实施例提供的单号处理方法,通过多级存储池存储承运商系统的单号,在收到单号获取请求后,优先从多级存储池获取单号,避免了频繁向承运商系统发送请求,减小承运商系统的处理压力;从多级存储池获取单号是按照多级存储池优先级由高到低的顺序,从多级存储池中的部分或者全部存储池获取存储的单号,当优先级高的存储池异常、禁用或者存储的单号不足时,还可从优先级低的存储池获取存储的单号,因此多级存储池具备较强的缓冲能力,可靠性较强。
图3是根据一示例性实施例示出的另一种单号处理方法的流程示意图,该方法包括以下步骤:
步骤S301:接收用户获取目标数量的单号的单号获取请求。
该步骤S301与上述步骤S201实现方式相同,此处不再赘述。
步骤S302:判断是否有历史单号获取请求的标识与接收的单号获取请求的标识相同;若没有相同的,则执行步骤S303-S304;若有相同的,则执行步骤S305。
实施中,因网络等问题平台侧系统可能接收到重复的单号获取请求,如果针对重复的单号获取请求进行单号获取会浪费该单号。基于此,在获取单号之前,先对单号获取请求的重复性进行检查,没有历史单号获取请求的标识与接收的单号获取请求的标识相同,才会获取单号;如果有历史单号获取请求的标识与接收的单号获取请求的标识相同,直接确定相同标识的历史单号获取请求所获取的单号的信息,并通过预设通知方式将该信息进行通知,如将该信息传输给用户设备或者生成面单的设备等。
在一些可选的实施方式中,还可以对单号获取请求的合规性进行检查,确定单号获取请求携带目标数量等信息,如果单号获取请求不合规,则通过预设通知方式将表征单号获取请求不合规的消息进行通知。
步骤S303:基于接收的单号获取请求对应的目标数量,按照所述多级存储池的优先级由高到低的顺序,从所述多级存储池中的部分或者全部存储池获取存储的承运商系统的单号。
其中,任一非优先级最低的存储池存储的单号,是从比所述存储池优先级低的其他存储池和/或所述承运商系统获取的;优先级最低的存储池存储的单号是从所述承运商系统获取的;
步骤S304:若从所述多级存储池获取的单号数量达到所述目标数量,则停止获取单号;若从所述多级存储池获取的单号数量没有达到所述目标数量,则从所述承运商系统获取单号,直到获取的单号数量达到所述目标数量。
该步骤S303-S304与上述步骤S202-S203实现方式相同,此处不再赘述。
步骤S305:确定相同标识的历史单号获取请求所获取的单号的信息。
实施中,确定相同标识的历史单号获取请求所获取的单号的信息后,还可通过预设通知方式将该信息进行通知,如将该信息传输给用户设备或者生成面单的设备等。
随着平台侧系统从多级存储池获取单号,多级存储池中剩余的单号减少,如果多级存储池单号消耗较多,会影响后续单号的获取。基于此,在确定多级存储池需要补充单号后,需要补充多级存储池中的单号。
如上所述,任一非优先级最低的存储池存储的单号,是从比该存储池优先级低的其他存储池和/或承运商系统获取的;优先级最低的存储池存储的单号是从承运商系统获取的。基于此,一些可选的实施方式中,从优先级最高的存储池开始,依次补充存储池中的单号。
一些可选的实施方式中,可通过以下方式确定多级存储池需要补充单号:
针对任一存储池,若所述存储池中剩余单号数量,与当前补充期所述存储池补充后的单号数量之比小于预设比例,则确定所述多级存储池需要补充下一补充期的单号;
其中,针对任一存储池,一个补充期所述存储池补充后的单号数量是所述补充期优先级高一级的存储池补充后的单号数量的预设倍数;一个补充期是从依次补充存储池中的单号开始的时刻,到下一次依次补充存储池中的单号开始的时刻。
还是以上述第一存储池以及第二存储池为例:
第一存储池存量小,第二存储池存量大,每个补充期第二存储池补充后的单号数量都是第一存储池补充后的单号数量的预设倍数。将第一存储池剩余的单号数量与当前补充期该第一存储池补充后的单号数量比对,第二存储池剩余的单号数量与当前补充期该第二存储池补充后的单号数量比对,如果第一存储池剩余的单号数量与当前补充期该第一存储池补充后的单号数量之比小于预设比例,和/或第二存储池剩余的单号数量与当前补充期该第二存储池补充后的单号数量之比小于预设比例,就确定多级存储池需要补充下一补充期的单号。上述预设倍数以及预设比例均可以根据实际应用场景设定,如预设倍数为10,预设比例为0.6。
在不同的应用场景中,存储池中单号消耗快慢差别较大,例如不同平台侧系统在同一时段内单号消耗快慢不同,同一平台侧系统在不同时段内单号消耗快慢也不同。在确定多级存储池需要补充单号后,如果一个存储池在每个补充期补充后的单号数量都相同,无法满足特定场景中需求,例如:在节假日或者进行促销活动时,平台侧系统单号消耗快,需要频繁补充存储池单号,进而频繁向承运商系统发送请求,造成承运商系统处理压力较大。基于此,本实施例提出一种补充单号的方法,用于动态补充多级存储池中的单号,参阅图4所示,该方法包括以下步骤:
步骤S401:基于表征所述第一存储池中单号消耗速度的消耗补充量,以及前一补充期所述第一存储池的历史预测数量,得到当前补充期所述第一存储池的第一预测数量。
示例性的,基于表征所述第一存储池中单号消耗速度的消耗补充量,以及前一补充期所述第一存储池的历史预测数量,得到当前补充期所述第一存储池的第一预测数量,可通过但不限于以下方式实现:
基于上述消耗补充量以及前一补充期第一存储池的历史预测数量,加权得到上述第一预测数量。即Pn=β*Pn′+(1-β)*Pn-1,Pn′为上述消耗补充量,Pn-1为上述前一补充期(记作第n-1补充期)第一存储池的历史预测数量,如果Pn是整数,将Pn作为第一预测数量;如果Pn不是整数,将Pn向上取整得到第一预测数量。第一补充期第一存储池的预测数量为0。
上述β表示平滑系数,β越大则Pn′权重越大,Pn-1权重越小,单号消耗速度的影响越大,第一预测数量越能及时反映实际变化,当然第一预测数量相比于历史预测数量的波动也越大;β越小,Pn′权重越小,Pn-1权重越大,单号消耗速度的影响越小,越多的变动被当做“杂音”过滤掉,第一预测数量相比于历史预测数量的波动较小。因此,可以根据应用场景选择β的大小。
实施中,上述消耗补充量为第一存储池中单号消耗速度与预设的持续时长的乘积。一些可选的实施方式中,通过以下方式得到所述消耗补充量:
消耗补充量其中,/>为第一存储池中单号消耗速度,BaseT为预设的持续时长;lastSaven-1为前一补充期所述第一存储池中补充后的单号数量,cacheNum为所述第一存储池中剩余单号数量,Tn为当前补充期的起始时刻,Tn-1为前一补充期的起始时刻。第一补充期第一存储池中补充后的单号数量为BaseN(第一存储池初始存储的单号数量),BaseN可根据实际应用场景设定,如果平台侧系统单号使用频率较高,则BaseN可设定大些,如果平台侧系统单号使用频率较低,则BaseN可设定小些。
步骤S402:基于所述第一预测数量从所述第二存储池和/或所述承运商系统获取单号,并补充到所述第一存储池中。
一些可选的实施方式中,基于所述第一预测数量从所述第二存储池和/或所述承运商系统获取单号,包括:
基于所述第一预测数量以及所述第一存储池的存储上限数量,确定目标存储数量;
若从所述第二存储池获取的单号数量达到所述目标存储数量,则停止获取单号;若从所述第二存储池获取的单号数量没有达到所述目标存储数量,则从所述承运商系统获取单号,直到获取的单号数量达到所述目标存储数量。
如上所述,第一存储池存量有限,如果第一预测数量与第一存储池的剩余单号数量之和达到第一存储池的存储上限数量,将该存储上限数量与第一存储池的剩余单号数量的差值确定为目标存储数量,从而使第一存储池补充后的单号数量不会超过上述存储上限数量,保证第一存储池正常工作;如果第一预测数量与第一存储池的剩余单号数量之和小于上述存储上限数量,且第一预测数量大于0,将第一预设数量确定为目标存储数量。
步骤S403:基于当前补充期所述第一存储池补充后的单号数量、所述预设倍数以及所述第二存储池中剩余单号数量,确定所述第二存储池的第二预测数量。
一些可选的实施方式中,通过以下方式确定所述第二预测数量:
步骤S404:基于所述第二预测数量从所述承运商系统获取单号,并补充到所述第二存储池中。
一些实施例中,确定的第二预测数量大于0,就基于第二预测数量从承运商系统获取单号;另外一些实施例中,确定的第二预测数量不大于0(小于0或者等于0),就不用补充第二存储池的单号。
本申请实施例提供的单号补充方法,综合表征第一存储池中单号消耗速度的消耗补充量,以及前一补充期该第一存储池的历史预测数量,得到符合当前单号消耗情况的第一预测数量;进而基于该第一预测数量从第二存储池和/或承运商系统获取单号,并补充到第一存储池中,针对不同场景动态调整第一存储池中单号的补充数量。基于当前补充期第一存储池补充后的单号数量、预设倍数以及第二存储池中剩余单号数量,确定第二存储池的第二预测数量;基于该第二预测数量从承运商系统获取单号,并补充到第二存储池中,从而适应性调整第二存储池中单号的补充数量。
一些可选的实施方式中,在依次补充存储池中的单号之前,还确定需要补充单号的目标维度,并请求所述目标维度对应的分布式锁;以保证对于相同承运商系统且类型相同的单号,在同一时刻只能有一个补充任务在执行;
在获取该目标维度对应的分布式锁后,执行上述依次补充存储池中的单号的步骤。
还是以上述四个维度的单号为例:
如果确定需要补充第一维度的单号(上述承运商系统1201的母单号),请求第一维度对应的分布式锁,保证在补充第一维度单号的过程中不会再次触发针对第一维度单号的补充任务。可以理解,请求第一维度对应的分布式锁,并不会影响其他维度单号(上述第二维度的单号、第三维度的单号以及上述第四维度的单号)的补充任务。
对应的,在依次补充存储池中的单号后,释放该目标维度对应的分布式锁。
一些可选的实施方式中,在完成单号补充后,确定并存储各存储池单号补充信息,如上述第一预测数量、目标存储数量、第二预测数量等信息。
一些可选的实施方式中,平台侧系统还可基于单号的维度对多级存储池的单号进行管理:例如确定多级存储池是否需要补充单号是确定多级存储池是否需要补充某维度单号;依次补充存储池中的单号也是依次补充存储池中对应维度的单号。
示例性设备
在介绍了本申请示例性单号处理方法的实施方式之后,接下来,参考图5对本申请示例性实施方式的单号处理装置进行说明。
如图5所示,基于相同的发明构思,本申请实施例还提供了一种单号处理装置,该单号处理装置连接多级存储池,该装置包括:
接收模块501,用于接收用户获取目标数量的单号的单号获取请求;
单号获取模块502,用于基于接收的单号获取请求对应的目标数量,按照所述多级存储池的优先级由高到低的顺序,从所述多级存储池中的部分或者全部存储池获取存储的承运商系统的单号;其中,任一非优先级最低的存储池存储的单号,是从比所述存储池优先级低的其他存储池和/或所述承运商系统获取的;优先级最低的存储池存储的单号是从所述承运商系统获取的;
所述单号获取模块502,还用于若从所述多级存储池获取的单号数量达到所述目标数量,则停止获取单号;若从所述多级存储池获取的单号数量没有达到所述目标数量,则从所述承运商系统获取单号,直到获取的单号数量达到所述目标数量。
在一些可选的实施方式中,所述平台侧系统包含第一存储池以及第二存储池,且所述第一存储池的优先级高于所述第二存储池;所述第一存储池采用分布式内存数据库,所述第二存储池采用Mysql数据库。
在一些可选的实施方式中,所述单号获取模块502,具体用于:
若所述第一存储池可用,则基于所述目标数量,从所述第一存储池获取单号;若从所述第一存储池获取的单号数量小于所述目标数量,则判断所述第二存储池是否可用;若确定所述第二存储池可用,则基于所述目标数量以及从所述第一存储池获取的单号数量的差值,从所述第二存储池获取单号;或者
若所述第一存储池不可用,则判断所述第二存储池是否可用;若确定所述第二存储池可用,则基于所述目标数量从所述第二存储池获取单号。
在一些可选的实施方式中,接收模块501在接收到所述单号获取请求之后,还用于:判断是否有历史单号获取请求的标识与接收的单号获取请求的标识相同;
若没有相同的,则单号获取模块502执行从所述多级存储池中的部分或者全部存储池获取存储的承运商系统的单号的步骤;
若有相同的,则单号获取模块502确定相同标识的历史单号获取请求所获取的单号的信息。
在一些可选的实施方式中,单号处理装置还包括单号补充模块503,单号补充模块503用于:
若确定所述多级存储池需要补充单号,则从优先级最高的存储池开始,依次补充存储池中的单号。
在一些可选的实施方式中,单号补充模块503在依次补充存储池中的单号之前,还用于:
确定需要补充单号的目标维度,并请求所述目标维度对应的分布式锁;其中,同一维度中的单号属于相同承运商系统,且类型相同;
在获取所述目标维度对应的分布式锁后,执行所述依次补充存储池中的单号的步骤。
在一些可选的实施方式中,单号补充模块503还用于:
针对任一存储池,若所述存储池中剩余单号数量,与当前补充期所述存储池补充后的单号数量之比小于预设比例,则确定所述多级存储池需要补充下一补充期的单号;
其中,针对任一存储池,一个补充期所述存储池补充后的单号数量是所述补充期优先级高一级的存储池补充后的单号数量的预设倍数;一个补充期是从依次补充存储池中的单号开始的时刻,到下一次依次补充存储池中的单号开始的时刻。
在一些可选的实施方式中,所述平台侧系统包含第一存储池以及第二存储池,且所述第一存储池的优先级高于所述第二存储池;
所述单号补充模块503,具体用于:
基于表征所述第一存储池中单号消耗速度的消耗补充量,以及前一补充期所述第一存储池的历史预测数量,得到当前补充期所述第一存储池的第一预测数量;
基于所述第一预测数量从所述第二存储池和/或所述承运商系统获取单号,并补充到所述第一存储池中;
基于当前补充期所述第一存储池补充后的单号数量、所述预设倍数以及所述第二存储池中剩余单号数量,确定所述第二存储池的第二预测数量;
基于所述第二预测数量从所述承运商系统获取单号,并补充到所述第二存储池中。
在一些可选的实施方式中,所述单号补充模块503通过以下方式得到所述消耗补充量:
其中,所述Pn′为所述消耗补充量,lastSaven-1为前一补充期所述第一存储池中补充后的单号数量,cacheNum为所述第一存储池中剩余单号数量,Tn为当前补充期的起始时刻,Tn-1为前一补充期的起始时刻,BaseT为预设的持续时长。
在一些可选的实施方式中,所述单号补充模块503,具体用于:
基于所述第一预测数量以及所述第一存储池的存储上限数量,确定目标存储数量;
若从所述第二存储池获取的单号数量达到所述目标存储数量,则停止获取单号;若从所述第二存储池获取的单号数量没有达到所述目标存储数量,则从所述承运商系统获取单号,直到获取的单号数量达到所述目标存储数量。
在一些可选的实施方式中,所述单号补充模块503通过以下方式确定所述第二预测数量:
下面参照图6来描述根据本申请的这种实施方式的电子设备600。图6所示的电子设备仅仅是一个示例,不对本申请实施例的功能和使用范围带来任何限制。
如图6所示,电子设备600可以以通用计算设备的形式表现,例如其可以为终端设备。电子设备600的组件可以包括但不限于:处理器601以及存储单元602、连接不同系统组件(包括存储单元602和处理器601)的总线603。
总线603表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、处理器或者使用多种总线结构中的任意总线结构的局域总线。
存储单元602包括用于存储承运商系统的单号的多级存储池(如上述第一存储池以及第二存储池)。存储单元602还包括用于存储处理器可执行指令的存储器,处理器601被配置为执行该指令,以实现上述单号处理方法。
电子设备600也可以与一个或多个外部设备604(如键盘、指向设备等)通信,还可与一个或者多个使得用户能与电子设备600交互的设备通信,和/或与使得电子设备600能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口605进行。并且,电子设备600还可以通过网络适配器606与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器606通过总线603与电子设备600的其它组件通信。应当明白,尽管图中未示出,可以结合电子设备600使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
示例性程序产品
在一些可能的实施方式中,本申请的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在电子设备上运行时,程序代码用于使电子设备的处理器执行本说明书上述“示例性方法”部分中描述的根据本申请各种示例性实施方式的单号处理方法的步骤。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
如图7所示,描述了根据本申请的实施方式的程序产品700,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在电子设备上运行。然而,本申请的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本申请操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在电子设备上执行、部分地在电子设备上执行、作为一个独立的软件包执行、部分在电子设备上部分在远程设备上执行、或者完全在远程设备上执行。在涉及远程设备的情形中,远程设备可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到电子设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
应当注意,尽管在上文详细描述中提及了系统的若干模块或子模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多模块的特征和功能可以在一个模块中具体化。反之,上文描述的一个模块的特征和功能可以进一步划分为由多个模块来具体化。
此外,尽管在附图中以特定顺序描述了本申请系统各模块的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些操作,将多个操作合并为一个操作执行,和/或将一个操作分解为多个操作执行。
虽然已经参考若干具体实施方式描述了本申请的精神和原理,但是应该理解,本申请并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本申请旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。
Claims (18)
1.一种单号处理方法,其特征在于,应用于平台侧系统,所述平台侧系统包含多级存储池,所述方法包括:
接收用户获取目标数量的单号的单号获取请求;
基于接收的单号获取请求对应的目标数量,按照所述多级存储池的优先级由高到低的顺序,从所述多级存储池中的部分或者全部存储池获取存储的承运商系统的单号;其中,任一非优先级最低的存储池存储的单号,是从比所述存储池优先级低的其他存储池和/或所述承运商系统获取的;优先级最低的存储池存储的单号是从所述承运商系统获取的;
若从所述多级存储池获取的单号数量达到所述目标数量,则停止获取单号;若从所述多级存储池获取的单号数量没有达到所述目标数量,则从所述承运商系统获取单号,直到获取的单号数量达到所述目标数量;
所述方法还包括:
若确定所述多级存储池需要补充单号,则从优先级最高的存储池开始,依次补充存储池中的单号;
在依次补充存储池中的单号之前,所述方法还包括:
确定需要补充单号的目标维度,并请求所述目标维度对应的分布式锁;其中,同一维度中的单号属于相同承运商系统,且类型相同;
在获取所述目标维度对应的分布式锁后,执行所述依次补充存储池中的单号的步骤;
所述平台侧系统包含第一存储池以及第二存储池,且所述第一存储池的优先级高于所述第二存储池;
从优先级最高的存储池开始,依次补充存储池中的单号,包括:
基于表征所述第一存储池中单号消耗速度的消耗补充量,以及前一补充期所述第一存储池的历史预测数量,得到当前补充期所述第一存储池的第一预测数量;
基于所述第一预测数量从所述第二存储池和/或所述承运商系统获取单号,并补充到所述第一存储池中;
基于当前补充期所述第一存储池补充后的单号数量、预设倍数以及所述第二存储池中剩余单号数量,确定所述第二存储池的第二预测数量;
基于所述第二预测数量从所述承运商系统获取单号,并补充到所述第二存储池中。
2.根据权利要求1所述的方法,其特征在于,所述平台侧系统包含第一存储池以及第二存储池,且所述第一存储池的优先级高于所述第二存储池;所述第一存储池采用分布式内存数据库,所述第二存储池采用关系型数据库管理系统Mysql数据库。
3.根据权利要求2所述的方法,其特征在于,基于接收的单号获取请求对应的目标数量,按照所述多级存储池的优先级由高到低的顺序,从所述多级存储池中的部分或者全部存储池获取存储的承运商系统的单号,包括:
若所述第一存储池可用,则基于所述目标数量,从所述第一存储池获取单号;若从所述第一存储池获取的单号数量小于所述目标数量,则判断所述第二存储池是否可用;若确定所述第二存储池可用,则基于所述目标数量以及从所述第一存储池获取的单号数量的差值,从所述第二存储池获取单号;或者
若所述第一存储池不可用,则判断所述第二存储池是否可用;若确定所述第二存储池可用,则基于所述目标数量从所述第二存储池获取单号。
4.根据权利要求1所述的方法,其特征在于,在接收到所述单号获取请求之后,还包括:
判断是否有历史单号获取请求的标识与接收的单号获取请求的标识相同;
若没有相同的,则执行从所述多级存储池中的部分或者全部存储池获取存储的承运商系统的单号的步骤;
若有相同的,则确定相同标识的历史单号获取请求所获取的单号的信息。
5.根据权利要求1所述的方法,其特征在于,通过以下方式确定所述多级存储池需要补充单号:
针对任一存储池,若所述存储池中剩余单号数量,与当前补充期所述存储池补充后的单号数量之比小于预设比例,则确定所述多级存储池需要补充下一补充期的单号;
其中,针对任一存储池,一个补充期所述存储池补充后的单号数量是所述补充期优先级高一级的存储池补充后的单号数量的预设倍数;一个补充期是从依次补充存储池中的单号开始的时刻,到下一次依次补充存储池中的单号开始的时刻。
7.根据权利要求1所述的方法,其特征在于,基于所述第一预测数量从所述第二存储池和/或所述承运商系统获取单号,包括:
基于所述第一预测数量以及所述第一存储池的存储上限数量,确定目标存储数量;
若从所述第二存储池获取的单号数量达到所述目标存储数量,则停止获取单号;若从所述第二存储池获取的单号数量没有达到所述目标存储数量,则从所述承运商系统获取单号,直到获取的单号数量达到所述目标存储数量。
9.一种电子设备,其特征在于,所述电子设备包括;
多级存储池,用于存储承运商系统的单号;
处理器,用于:
接收用户获取目标数量的单号的单号获取请求;
基于接收的单号获取请求对应的目标数量,按照所述多级存储池的优先级由高到低的顺序,从所述多级存储池中的部分或者全部存储池获取存储的承运商系统的单号;其中,任一非优先级最低的存储池存储的单号,是从比所述存储池优先级低的其他存储池和/或所述承运商系统获取的;优先级最低的存储池存储的单号是从所述承运商系统获取的;
若从所述多级存储池获取的单号数量达到所述目标数量,则停止获取单号;若从所述多级存储池获取的单号数量没有达到所述目标数量,则从所述承运商系统获取单号,直到获取的单号数量达到所述目标数量;
所述处理器还用于:
若确定所述多级存储池需要补充单号,则从优先级最高的存储池开始,依次补充存储池中的单号;
在依次补充存储池中的单号之前,所述处理器还用于:
确定需要补充单号的目标维度,并请求所述目标维度对应的分布式锁;其中,同一维度中的单号属于相同承运商系统,且类型相同;
在获取所述目标维度对应的分布式锁后,执行所述依次补充存储池中的单号的步骤;
所述多级存储池为第一存储池以及第二存储池,且所述第一存储池的优先级高于所述第二存储池;
所述处理器具体用于:
基于表征所述第一存储池中单号消耗速度的消耗补充量,以及前一补充期所述第一存储池的历史预测数量,得到当前补充期所述第一存储池的第一预测数量;
基于所述第一预测数量从所述第二存储池和/或所述承运商系统获取单号,并补充到所述第一存储池中;
基于当前补充期所述第一存储池补充后的单号数量、预设倍数以及所述第二存储池中剩余单号数量,确定所述第二存储池的第二预测数量;
基于所述第二预测数量从所述承运商系统获取单号,并补充到所述第二存储池中。
10.根据权利要求9所述的电子设备,其特征在于,所述多级存储池为第一存储池以及第二存储池,且所述第一存储池的优先级高于所述第二存储池;所述第一存储池采用分布式内存数据库,所述第二存储池采用Mysql数据库。
11.根据权利要求10所述的电子设备,其特征在于,所述处理器具体用于:
若所述第一存储池可用,则基于所述目标数量,从所述第一存储池获取单号;若从所述第一存储池获取的单号数量小于所述目标数量,则判断所述第二存储池是否可用;若确定所述第二存储池可用,则基于所述目标数量以及从所述第一存储池获取的单号数量的差值,从所述第二存储池获取单号;或者
若所述第一存储池不可用,则判断所述第二存储池是否可用;若确定所述第二存储池可用,则基于所述目标数量从所述第二存储池获取单号。
12.根据权利要求9所述的电子设备,其特征在于,在接收到所述单号获取请求之后,所述处理器还用于:
判断是否有历史单号获取请求的标识与接收的单号获取请求的标识相同;
若没有相同的,则执行从所述多级存储池中的部分或者全部存储池获取存储的承运商系统的单号的步骤;
若有相同的,则确定相同标识的历史单号获取请求所获取的单号的信息。
13.根据权利要求9所述的电子设备,其特征在于,所述处理器具体用于:
针对任一存储池,若所述存储池中剩余单号数量,与当前补充期所述存储池补充后的单号数量之比小于预设比例,则确定所述多级存储池需要补充下一补充期的单号;
其中,针对任一存储池,一个补充期所述存储池补充后的单号数量是所述补充期优先级高一级的存储池补充后的单号数量的预设倍数;一个补充期是从依次补充存储池中的单号开始的时刻,到下一次依次补充存储池中的单号开始的时刻。
15.根据权利要求9所述的电子设备,其特征在于,所述处理器具体用于:
基于所述第一预测数量以及所述第一存储池的存储上限数量,确定目标存储数量;
若从所述第二存储池获取的单号数量达到所述目标存储数量,则停止获取单号;若从所述第二存储池获取的单号数量没有达到所述目标存储数量,则从所述承运商系统获取单号,直到获取的单号数量达到所述目标存储数量。
17.一种单号处理装置,其特征在于,所述单号处理装置连接多级存储池,所述单号处理装置包括:
接收模块,用于接收用户获取目标数量的单号的单号获取请求;
单号获取模块,用于基于接收的单号获取请求对应的目标数量,按照所述多级存储池的优先级由高到低的顺序,从所述多级存储池中的部分或者全部存储池获取存储的承运商系统的单号;其中,任一非优先级最低的存储池存储的单号,是从比所述存储池优先级低的其他存储池和/或所述承运商系统获取的;优先级最低的存储池存储的单号是从所述承运商系统获取的;
所述单号获取模块,还用于若从所述多级存储池获取的单号数量达到所述目标数量,则停止获取单号;若从所述多级存储池获取的单号数量没有达到所述目标数量,则从所述承运商系统获取单号,直到获取的单号数量达到所述目标数量;
单号处理装置还包括单号补充模块,用于:
若确定所述多级存储池需要补充单号,则从优先级最高的存储池开始,依次补充存储池中的单号;
所述单号补充模块在依次补充存储池中的单号之前,还用于:
确定需要补充单号的目标维度,并请求所述目标维度对应的分布式锁;其中,同一维度中的单号属于相同承运商系统,且类型相同;
在获取所述目标维度对应的分布式锁后,执行所述依次补充存储池中的单号的步骤;
所述多级存储池为第一存储池以及第二存储池,且所述第一存储池的优先级高于所述第二存储池;
所述单号补充模块,具体用于:
基于表征所述第一存储池中单号消耗速度的消耗补充量,以及前一补充期所述第一存储池的历史预测数量,得到当前补充期所述第一存储池的第一预测数量;
基于所述第一预测数量从所述第二存储池和/或所述承运商系统获取单号,并补充到所述第一存储池中;
基于当前补充期所述第一存储池补充后的单号数量、预设倍数以及所述第二存储池中剩余单号数量,确定所述第二存储池的第二预测数量;
基于所述第二预测数量从所述承运商系统获取单号,并补充到所述第二存储池中。
18.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时,实现如权利要求1-8中任一项所述的单号处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110220603.2A CN112925851B (zh) | 2021-02-26 | 2021-02-26 | 一种单号处理方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110220603.2A CN112925851B (zh) | 2021-02-26 | 2021-02-26 | 一种单号处理方法、装置、电子设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112925851A CN112925851A (zh) | 2021-06-08 |
CN112925851B true CN112925851B (zh) | 2023-06-13 |
Family
ID=76172435
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110220603.2A Active CN112925851B (zh) | 2021-02-26 | 2021-02-26 | 一种单号处理方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112925851B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8949147B1 (en) * | 2001-05-18 | 2015-02-03 | New Breed, Inc. | Methods and systems for tracking a product or service within a supply |
WO2019109922A1 (zh) * | 2017-12-08 | 2019-06-13 | 京东方科技集团股份有限公司 | 资源处理方法及系统、存储介质、电子设备 |
CN110516906A (zh) * | 2019-07-12 | 2019-11-29 | 江苏苏宁物流有限公司 | 大用户量并发取单方法及系统 |
CN111400245A (zh) * | 2020-03-25 | 2020-07-10 | 网易(杭州)网络有限公司 | 美术资源迁移方法及装置 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10592852B1 (en) * | 2005-07-18 | 2020-03-17 | Versata Development Group, Inc. | Determining recommended orders for configurable products on a multi-dimensional basis |
US9594527B2 (en) * | 2009-12-16 | 2017-03-14 | Teradata Us, Inc. | Precedence based storage |
CN105550366B (zh) * | 2016-01-20 | 2019-10-18 | 百度在线网络技术(北京)有限公司 | 库存信息处理方法和装置 |
CN109150929B (zh) * | 2017-06-15 | 2021-11-12 | 北京京东尚科信息技术有限公司 | 高并发场景下的数据请求处理方法和装置 |
CN109033153A (zh) * | 2018-06-12 | 2018-12-18 | 上海中通吉网络技术有限公司 | 一种动态分配唯一电子运单号的方法 |
CN109582234A (zh) * | 2018-11-23 | 2019-04-05 | 金色熊猫有限公司 | 储存资源分配方法、装置、电子设备及计算机可读介质 |
CN109670975B (zh) * | 2018-12-17 | 2021-02-05 | 泰康保险集团股份有限公司 | 计算机系统中生成单号的方法、介质及电子设备 |
CN111695847A (zh) * | 2019-05-17 | 2020-09-22 | 上海寻梦信息技术有限公司 | 物流电子面单的号段管理方法及系统、设备及存储介质 |
CN111694835B (zh) * | 2019-06-13 | 2021-03-30 | 上海寻梦信息技术有限公司 | 物流电子面单的号段存取方法及系统、设备及存储介质 |
-
2021
- 2021-02-26 CN CN202110220603.2A patent/CN112925851B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8949147B1 (en) * | 2001-05-18 | 2015-02-03 | New Breed, Inc. | Methods and systems for tracking a product or service within a supply |
WO2019109922A1 (zh) * | 2017-12-08 | 2019-06-13 | 京东方科技集团股份有限公司 | 资源处理方法及系统、存储介质、电子设备 |
CN110516906A (zh) * | 2019-07-12 | 2019-11-29 | 江苏苏宁物流有限公司 | 大用户量并发取单方法及系统 |
CN111400245A (zh) * | 2020-03-25 | 2020-07-10 | 网易(杭州)网络有限公司 | 美术资源迁移方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112925851A (zh) | 2021-06-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11762697B2 (en) | Method and apparatus for scheduling resource for deep learning framework | |
US11303509B2 (en) | Resource allocation to reduce correlated failures | |
CN113886089B (zh) | 一种任务处理方法、装置、系统、设备及介质 | |
US10698785B2 (en) | Task management based on an access workload | |
CN108769162B (zh) | 分布式消息均衡处理方法、装置、电子设备、存储介质 | |
CN112650576A (zh) | 资源调度方法、装置、设备、存储介质及计算机程序产品 | |
CN113742114A (zh) | 一种系统限流的方法和装置 | |
CN115964153A (zh) | 一种异步任务处理方法、装置、设备以及存储介质 | |
CN112036588A (zh) | 一种系统运维流程管控方法及装置 | |
CN114827280A (zh) | 请求处理方法、装置、设备、介质 | |
CN112925851B (zh) | 一种单号处理方法、装置、电子设备和存储介质 | |
CN116483785A (zh) | 文件传输调度方法、装置、设备及计算机可读存储介质 | |
CN102970355A (zh) | 通过挂起承租人来管理数据中心的容量 | |
CN113760494B (zh) | 任务调度方法和装置 | |
CN113765871B (zh) | 堡垒机管理的方法和装置 | |
CN114374657A (zh) | 一种数据处理方法和装置 | |
US10599479B2 (en) | Resource sharing management of a field programmable device | |
CN115220907A (zh) | 资源调度方法、装置、电子设备及存储介质 | |
CN110888770B (zh) | 用于发送信息的方法和装置 | |
US11494239B2 (en) | Method for allocating computing resources, electronic device, and computer program product | |
CN115220908A (zh) | 资源调度方法、装置、电子设备及存储介质 | |
CN114064403A (zh) | 一种任务延迟分析处理方法和装置 | |
CN113449994A (zh) | 任务单的分配方法、装置、电子设备、介质和程序产品 | |
CN113918282A (zh) | 一种数据库访问方法、装置、电子设备及计算机可读介质 | |
CN109903022B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |