CN113127561A - 业务单号的生成方法、装置、电子设备和存储介质 - Google Patents
业务单号的生成方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN113127561A CN113127561A CN202010037532.8A CN202010037532A CN113127561A CN 113127561 A CN113127561 A CN 113127561A CN 202010037532 A CN202010037532 A CN 202010037532A CN 113127561 A CN113127561 A CN 113127561A
- Authority
- CN
- China
- Prior art keywords
- identifiers
- queue
- identifier
- identification
- continuous
- 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.)
- Granted
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/21—Design, administration or maintenance of databases
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了业务单号的生成方法、装置、电子设备和存储介质,涉及计算机技术领域。该方法的一具体实施方式包括:接收业务单号生成请求,业务单号生成请求包括目标数量和是否连续标识,目标数量表示业务单号生成请求所请求生成业务单号的数量,是否连续标识表示业务单号生成请求所请求生成的业务单号是否连续;根据目标数量和是否连续标识,从第一标识队列和/或第二标识队列中获取目标数量个标识;其中,第一标识队列和第二标识队列均存储连续标识;对于目标数量个标识中的每个标识,根据每个标识生成对应的业务单号。该实施方式能够避免请求多个连续的业务单号时,服务器的标识队列中标识不连续,导致无法满足请求需求的问题。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种业务单号的生成方法、装置、电子设备和存储介质。
背景技术
目前,业务单号通常通过分布式生成***完成生成,分布式生成***包括数据库,以及与数据库通过分布式方式连接的多个服务器。每个服务器中生成并存储一个队列连续的标识,来用于分配给请求业务单号的订单,进而为该订单生成业务单号。数据库中会存储标识的生成位置标记,每个服务器生成标识时,需要按照数据库中存储的标记继续顺序生成新的标识,以避免多个服务器中生成的标识重复,进而导致业务单号重复。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
由于每个服务器在存储的标识使用到一定数量后,均会向根据按照数据库中存储的标记继续按顺序生成新的标识,数据库中存储的标记也会根据每个服务器生成的标识数量更新标记,所以每个服务器前一次生成新的标识与后一次生成的标识并不一定会连续,所以服务器中队列标识并不一定是完全连续的。当请求中请求多个连续的业务单号时,服务器需要为请求分配多个连续的标识,此时服务器中队列标识如果不连续,则会无法满足请求的需求。
发明内容
有鉴于此,本发明实施例提供一种确定业务单号的方法、装置、***和存储介质,能够避免请求多个连续的业务单号时,服务器的标识队列中标识不连续,导致无法满足请求需求的问题。
为实现上述目的,根据本发明实施例的一个方面,提供了一种业务单号的生成方法。
本发明实施例的一种业务单号的生成方法包括:接收业务单号生成请求,所述业务单号生成请求包括目标数量和是否连续标识,所述目标数量表示所述业务单号生成请求所请求生成业务单号的数量,所述是否连续标识表示所述业务单号生成请求所请求生成的业务单号是否连续;根据所述目标数量和所述是否连续标识,从第一标识队列和/或第二标识队列中获取所述目标数量个标识;其中,所述第一标识队列和第二标识队列均存储连续标识;对于所述目标数量个标识中的每个标识,根据所述每个标识生成对应的业务单号。
在一个实施例中,所述根据所述目标数量和所述是否连续标识,从第一标识队列和/或第二标识队列中获取所述目标数量的标识,包括:判断所述第一标识队列中的标识数量是否小于所述目标数量;若否,则从所述第一标识队列中,按照标识的排列顺序获取所述目标数量个标识;若是,则从所述第二标识队列、或者所述第一标识队列和所述第二标识队列中,按照标识的排列顺序获取所述目标数量个标识。
在又一个实施例中,若所述是否连续标识表示所述业务单号生成请求所请求生成的业务单号连续,则从所述第二标识队列、或者所述第一标识队列和所述第二标识队列中,按照标识的排列顺序获取所述目标数量个标识,包括:从所述第二标识队列中,按照标识的排列顺序获取所述目标数量个标识。
在又一个实施例中,若所述是否连续标识表示所述业务单号生成请求所请求生成的业务单号不连续,则从所述第二标识队列、或者所述第一标识队列和所述第二标识队列中,按照标识的排列顺序获取所述目标数量个标识,包括:
按照标识的排列顺序,从所述第一标识队列中获取M个标识并从所述第二标识队列中获取N个标识,得到所述目标数量个标识;其中,M和N为大于零的整数,M表示所述第一标识队列中的标识数量。
在又一个实施例中,还包括:当所述第一标识队列为空时,将所述第二标识队列中的标识移动至所述第一标识队列。
在又一个实施例中,还包括:当达到预设标识生成条件时,确定已生成标识的当前结束位置和标识生成数量;根据所述当前结束位置,按顺序生成所述标识生成数量个标识;将所述标识生成数量个标识存储至所述第二标识队列。
在又一个实施例中,所述预设标识生成条件包括所述第一标识队列中剩余标识的数量达到阈值,或所述第二标识队列为空。
为实现上述目的,根据本发明的另一方面,提供了一种业务单号的生成装置。
本发明的一种业务单号的生成装置包括:接收单元,用于接收业务单号生成请求,所述业务单号生成请求包括目标数量和是否连续标识,所述目标数量表示所述业务单号生成请求所请求生成业务单号的数量,所述是否连续标识表示所述业务单号生成请求所请求生成的业务单号是否连续;获取单元,用于根据所述目标数量和所述是否连续标识,从第一标识队列和/或第二标识队列中获取所述目标数量个标识;其中,所述第一标识队列和第二标识队列均存储连续标识;生成单元,用于对于所述目标数量个标识中的每个标识,根据所述每个标识生成对应的业务单号。
在一个实施例中,所述获取单元具体用于:判断所述第一标识队列中的标识数量是否小于所述目标数量;若否,则从所述第一标识队列中,按照标识的排列顺序获取所述目标数量个标识;若是,则从所述第二标识队列、或者所述第一标识队列和所述第二标识队列中,按照标识的排列顺序获取所述目标数量个标识。
在又一个实施例中,若所述是否连续标识表示所述业务单号生成请求所请求生成的业务单号连续,则所述获取单元具体用于:
从所述第二标识队列中,按照标识的排列顺序获取所述目标数量个标识。
在又一个实施例中,若所述是否连续标识表示所述业务单号生成请求所请求生成的业务单号不连续,则所述获取单元具体用于:
按照标识的排列顺序,从所述第一标识队列中获取M个标识并从所述第二标识队列中获取N个标识,得到所述目标数量个标识;其中,M和N为大于零的整数,M表示所述第一标识队列中的标识数量。
在又一个实施例中,还包括:
移动单元,用于当所述第一标识队列为空时,将所述第二标识队列中的标识移动至所述第一标识队列。
在又一个实施例中,还包括:
确定单元,用于当达到预设标识生成条件时,确定已生成标识的当前结束位置和标识生成数量;
所述生成单元,还用于根据所述当前结束位置,按顺序生成所述标识生成数量个标识;
所述装置还包括:
存储单元,用于将所述标识生成数量个标识存储至所述第二标识队列。
在又一个实施例中,所述预设标识生成条件包括所述第一标识队列中剩余标识的数量达到阈值,或所述第二标识队列为空。
为实现上述目的,根据本发明实施例的再一个方面,提供了一种电子设备。
本发明实施例的一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例提供的业务单号的生成的方法。
为实现上述目的,根据本发明实施例的又一个方面,提供了一种计算机可读介质。
本发明实施例的一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例提供的业务单号的生成方法。
上述发明中的一个实施例具有如下优点或有益效果:本发明实施例中,服务器中包括第一标识队列和第二标识队列两个标识队列,并且两个队列中存储的标识是连续的,此时如此根据业务单号生成请求中目标数量和是否连续标识,可以从第一标识队列和/或第二标识队列中获取目标数量的标识,进而生成业务单号,从而能够避免请求多个连续的业务单号时,服务器中标识队列中标识不连续,导致无法满足请求需求的问题。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施例的业务单号的生成方法的一种***架构的示意图;
图2是根据本发明实施例的业务单号的生成方法的一种主要流程的示意图;
图3是根据本发明实施例的业务单号的生成方法的又一种主要流程的示意图;
图4是根据本发明实施例的业务单号的生成装置的主要单元的示意图;
图5是本发明实施例可以应用于其中的又一种示例性***架构图;
图6是适于用来实现本发明实施例的计算机***的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
需要指出的是,在不冲突的情况下,本发明中的实施例以及实施例中的特征可以互相组合。
本发明实施例提供一种业务单号的生成方法,该方法可以用于为订单生成业务单号的场景,业务单号可以包括多种,例如订单号、服务单号等等。具体的可以如图1所示。图1为适用于本发明实施例中业务单号的生成方法的一种***架构的示意图。在图1所示的***架构中,包括数据库和多个服务器(图1中示出3个),其中各服务器与数据库分布式连接。本发明实施例中,业务单号可以通过标识加标示符、验证码等方式来生成,所以如果需要连续的业务单号时,则需要先获取连续的标识,然后,基于连续的标识生成连续的业务单号。业务单号生成***中,各服务器均可以接收订单生成请求,订单生成请求中包括请求业务单号的数量和请求的业务单号是否需要连续等信息。服务器可以根据订单生成请求中包括的信息,确定满足需求的标识,进而生成满足需求的业务单号。
图1中各服务器中均设置标识队列,用于存储标识,以用于生成业务单号。各服务器初始化时标识队列中存储预先生成的连续的标识,为了避免各服务器中标识出现重复导致生成重复的业务单号,各服务器需按照顺序生成标识,例如,服务器1中生成标识为1001-2000,服务器2中生成标识为2001-3000,如此各服务器中生成的标识互不相同。同时,各服务器初始化后,将已生成标识的当前结束位置作为标记存储至数据库中,以便于后续各服务器在生成标识时,可以根据数据库中存储的标记继续生成,从而避免各服务器再生成的标识出现重复的情况。并且数据库中存储的标记随着每次服务器生成标识的数量进行更新。
一般情况下,各服务器中只有一个标识队列,初始化时服务器的标识队列中标识是连续的,在后续标识队列中有标识被使用生成业务单号后,服务器需要再生成标识,以便于填充标识队列,保证标识队列中标识能够满足使用需求。但是,服务器再生成的标识,与标识队列中原有的标识并不一定是连续的。例如,假设业务单号生成***包括服务器1、服务器2和服务器3,初始化时,服务器1的标识队列中标识为1001-2000,服务器2的标识队列中标识为2001-3000,服务器3的标识队列中标识为3001-4000,此时已生成标识的当前结束位置为4000,则数据库中存储标记为4000。后续运行过程中,服务器1的标识队列中一些标识被用于生成业务单号,服务器1需要再生成标识以对标识队列进行补充,则此时服务器1需要根据数据库中存储的标记,按照顺序再生成标识,也就是说,数据库中存储标记为4000,则服务器1再生成标识需要从4001开始。而服务器1初始化的标识为1001-2000,所以服务器1再生成的标识与初始化时生成的标识是不连续的。
此时,服务器1接收到请求多个连续业务单号的请求时,由于标识队列中的标识并没有连续,所以有可能服务器1并不能满足请求的需求,从而导致无法生成满足请求的业务单号。
本发明实施例中,为了避免上述问题,在每个服务器中设置两个标识队列,分别为第一标识队列和第二标识队列。其中,可以将第一标识队列作为当前标识队列,第二标识队列作为备用标识队列,第一标识队列和第二标识队列中分别用于存储连续的标识,第一标识队列中的标识与第二标识队列中的标识可以不连续。如此第一标识队列和第二标识队列中分别存储连续的标识,在服务器1接收到请求多个连续业务单号的请求时,如果第一标识队列中标识不能满足请求的需求,则可以直接行第二标识队列中获取到满足请求需求的标识,避免了不能满足请求需求的场景。
本发明实施例提供了一种业务单号的生成方法,该方法可由图1所示***架构中服务器执行,如图2所示,该方法包括以下步骤。
S201:接收业务单号生成请求。
其中,业务单号生成请求包括目标数量和是否连续标识,目标数量表示业务单号生成请求所请求生成业务单号的数量,是否连续标识表示业务单号生成请求所请求生成的业务单号是否连续。
业务单号生成请求中包括表示目标数量和是否连续标识的字段。服务器在接收到业务单号生成请求后,可以根据业务单号生成请求确定出本次请求的业务单号的数量,即目标数量,以及确定出本次请求的业务单号是否需要连续。本发明实施例中,一个标识用于生成一个业务单号,则目标数量即为服务器需要获取标识的数量。如果本次请求的业务单号要求连续,需要通过连续的标识来生成,所以需要从标识队列中获取连续的标识。
S202:根据目标数量和是否连续标识,从第一标识队列和/或第二标识队列中获取目标数量个标识。
其中,第一标识队列和第二标识队列均存储连续标识。根据目标数量和是否连续标识可以确定出业务单号生成请求的是哪种业务单号,进而可以确定出需要哪种标识来生成请求的业务单号。
本发明实施例中,由于第一标识队列为当前标识队列,所以本步骤中可以先判断第一标识队列中的标识数量是否小于目标数量。若否,则从第一标识队列中,按照标识的排列顺序获取目标数量个标识;若是,则从第二标识队列、或者第一标识队列和第二标识队列中,按照标识的排列顺序获取目标数量个标识。
为了保证标识队列中的标识连续,所以从第一标识队列和第二标识队列中均按照标识排列顺利获取标识,所以第一标识队列和第二标识队列中的标识均为连续的。由于第一标识队列中的标识均连续,则第一标识队列中的标识数量不小于目标数量时,无论请求的业务单号是否连续,服务器可以直接从第一标识队列中获取目标数量个标识。第一标识队列中的标识数量小于目标数量时,则需要区分请求的业务单号是否连续。
具体的,若是否连续标识表示所述业务单号生成请求所请求生成的业务单号连续,则从所述第二标识队列、或者所述第一标识队列和所述第二标识队列中,按照标识的排列顺序获取所述目标数量个标识,可以执行为:从所述第二标识队列中,按照标识的排列顺序获取所述目标数量个标识。
其中,由于第一标识队列中包括标识的数量小于目标数量,则说明第一标识队列中包括的标识不能够满足业务单号生成请求的需求,此时需要从作为备用的第二标识队列中获取标识。当是否连续标识表示业务单号生成请求所请求生成的业务单号连续时,则说明服务器需要从第二标识队列中获取到目标数量个连续标识。此时第二标识队列中的标识是连续的,如果需要获取连续的标识,则在获取标识时,需要按照顺序获取,以避免获取到的标识不连续。因此服务器可以按照排列顺序从第二标识队列中获取目标数量个标识。目标数量个标识即为用于生成本次生成业务单号请求所请求的业务单号的标识。
具体的,若是否连续标识表示业务单号生成请求所请求生成的业务单号不连续,则从第二标识队列、或者第一标识队列和第二标识队列中,按照标识的排列顺序获取目标数量个标识,可以执行为:按照标识的排列顺序,从第一标识队列中获取M个标识并从第二标识队列中获取N个标识,得到目标数量个标识;其中,M和N为大于零的整数,M表示第一标识队列中的标识数量。
如果业务单号生成请求所请求的业务单号可以是不连续的,则说明服务器获取用于生成业务单号的标识也可以是不连续的。此时服务器会优先从第一标识队列中获取标识。但是第一标识队列中包括的标识不能满足目标数量,则此时需要再从第二标识队列中获取标识,以便能够满足目标数量的要求。
所以,本发明实施例中,服务器判断第一标识队列中包括标识数量不能够达到目标数量,则需要首先确定出第一标识队列中包括标识的数量,即为M,然后通过目标数量减去M得出N,即为需要从第二标识队列中获取标识的数量。此时则可以从第二标识队列中获取到N个标识,再结合第一标识队列中的M个标识,组成目标数量个标识。
S203:对于目标数量个标识中的每个标识,根据每个标识生成对应的业务单号。
其中,在确定出目标数量个标识后,可以基于目标数量个标识中的每一个标识,生成一个对应的业务单号,进而可以得出本次业务单号生成请求所请求的业务单号。
本发明实施例中,第一标识队列为当前标识队列,在第一标识队列中标识使用完后,可以将第二标识队列中的标识移动至第一标识队列中,以便服务器可以继续从第一标识队列中获取标识使用。
本发明实施例的又一种实现方式中,当达到预设标识生成条件时,确定已生成标识的当前结束位置和标识生成数量;根据当前结束位置,按顺序生成标识生成数量个标识;将标识生成数量个标识存储至第二标识队列。
服务器在达到预设标识生成条件时,会执行标识生成的流程。服务器首先确定出当前结束位置和标识生成数量,然后根据当前结束位置、按照顺序生成标识生成数量个标识,并将生成的数量个标识存储至第二标识队列。预设标识生成条件包括所述第一标识队列中剩余标识的数量达到阈值,或所述第二标识队列为空。
本发明实施例中,第二标识队列的标识移动至第一标识队列后,第二标识队列为空,此时服务器可以执行标识生成的流程,所以可以设置预设条件第二标识队列为空,执行标识生成的流程后将第二标识队列填满。第二标识队列的标识移动至第一标识队列后,由于通常第二标识队列的标识并未被使用,所以此时第一标识队列中标识的数量较多,所以这时可以设置阈值,在第一标识队列中标识使用剩余数量达到阈值时,执行标识生成的流程后将第二标识队列填满,因此预设标识生成条件可以为第一标识队列中剩余标识的数量达到阈值。阈值的大小可以根据需求设置,如设置为第一标识队列所能存储标识数量的50%。
需要说明的是,通常情况下,当前结束位置存储在数据库中,所以服务器确定当前结束位置的过程可以执行为:向数据库发送用于请求,以请求当前结束位置;然后接收数据库发送的响应消息,响应消息包括了当前结束位置。
数据库接收到用于请求当前结束位置的请求后,会将当前结束位置通过响应消息发送给服务器。同时,服务器在发送请求时,还可以在请求中携带标识生成数量,以便于数据库根据标识生成数量更新存储的当前结束位置。
本发明实施例中,本发明实施例中,服务器中包括第一标识队列和第二标识队列两个标识队列,并且两个队列中存储的标识是连续的,此时如此根据业务单号生成请求中目标数量和是否连续标识,可以从第一标识队列和/或第二标识队列中获取目标数量的标识,进而生成业务单号,从而能够避免请求多个连续的业务单号时,服务器中标识队列中标识不连续,导致无法满足请求需求的问题。
下面结合图2所示的实施例,对本发明实施例中业务单号的生成方法进行具体说明。如图3所示,该方法包括以下步骤。
S301:接收业务单号生成请求,确定请求业务单号的目标数量和是否连续标识。
其中,业务单号生成请求可以包括两种,一种为单个业务单号请求,另一种为批量业务单号请求。单个业务单号请求的目标数量为1,其可以不包括是否连续标识。批量业务单号请求的目标数量即可为业务单号生成请求所包括的目标数量。
S302:判断第一标识队列中包括标识的数量是否小于目标数量,若否,则执行步骤S303;若是,则执行步骤S304。
其中,第一标识队列和第二标识队列中的标识均为连续的。由于第一标识队列为当前标识队列,所以本步骤中可以先判断第一标识队列中的标识数量是否小于目标数量。
S303:从第一标识队列中,按顺序获取目标数量个标识。
其中,由于第一标识队列中的标识均连续,则第一标识队列中的标识数量不小于目标数量时,无论请求的业务单号是否连续,服务器可以直接从第一标识队列中获取目标数量个标识。执行完本步骤后执行步骤308。
S304:根据是否连续标识,判断业务单号生成请求是否请求连续的业务单号;若是,则执行步骤S305;若否,则执行步骤S306。
第一标识队列中的标识数量小于目标数量时,则需要区分请求的业务单号是否连续。若业务单号生成请求所请求连续的业务单号,则需要从第二标识队列中获取目标数量个标识;若业务单号生成请求所请求不连续的业务单号,则需要先从第一标识队列中获取第一标识队列包括的标识,然后再从第二标识队列中获取标识,以满足目标数量的需求。
S305:从第二标识队列中,按照顺序获取目标数量个标识。
执行完本步骤后执行步骤S308。
S306:确定第一标识队列中包括标识的数量M,并根据目标数量和M,确定需要从第二标识队列获取标识的数量N。
其中,N为目标数量与M的差值。
S307:从第一标识队列中获取M个标识,以及从第二标识队列中,按照顺序获取N个标识,得到目标数量个标识。
S308:对于目标数量个标识中的每个标识,根据每个标识生成业务单号,得到目标数量个业务单号。
本发明实施例对根据标识生成业务单号的方式不做限定,例如,业务单号JD0012345678905,为由标识1234567890生成的业务单号。其中,JD为邮政定义,00为业务标记,1234567890为标识,5为校验位。校验位可以由之前的所有数字计算出来。
本发明实施例中,服务器中包括第一标识队列和第二标识队列两个标识队列,并且两个队列中存储的标识是连续的,此时如此根据业务单号生成请求中目标数量和是否连续标识,可以从第一标识队列和/或第二标识队列中获取目标数量的标识,进而生成业务单号,从而能够避免请求多个连续的业务单号时,服务器中标识队列中标识不连续,导致无法满足请求需求的问题。
为了解决现有技术存在的问题,本发明实施例提供了一种业务单号的生成装置400,如图4所示,该装置400包括:
接收单元401,用于接收业务单号生成请求,所述业务单号生成请求包括目标数量和是否连续标识,所述目标数量表示所述业务单号生成请求所请求生成业务单号的数量,所述是否连续标识表示所述业务单号生成请求所请求生成的业务单号是否连续;
获取单元402,用于根据所述目标数量和所述是否连续标识,从第一标识队列和/或第二标识队列中获取所述目标数量个标识;其中,所述第一标识队列和第二标识队列均存储连续标识;
生成单元403,用于对于所述目标数量个标识中的每个标识,根据所述每个标识生成对应的业务单号。
应理解的是,实施本发明实施例的方式与实施图2所示实施例的方式相同,在此不再赘述。
本发明实施例的一种实现方式中,所述获取单元402具体用于:判断所述第一标识队列中的标识数量是否小于所述目标数量;若否,则从所述第一标识队列中,按照标识的排列顺序获取所述目标数量个标识;若是,则从所述第二标识队列、或者所述第一标识队列和所述第二标识队列中,按照标识的排列顺序获取所述目标数量个标识。
本发明实施例的又一种实现方式中,若所述是否连续标识表示所述业务单号生成请求所请求生成的业务单号连续,则所述获取单元402具体用于:
从所述第二标识队列中,按照标识的排列顺序获取所述目标数量个标识。
本发明实施例的又一种实现方式中,若所述是否连续标识表示所述业务单号生成请求所请求生成的业务单号不连续,则所述获取单元402具体用于:
按照标识的排列顺序,从所述第一标识队列中获取M个标识并从所述第二标识队列中获取N个标识,得到所述目标数量个标识;其中,M和N为大于零的整数,M表示所述第一标识队列中的标识数量。
本发明实施例的又一种实现方式中,还包括:
移动单元,用于当所述第一标识队列为空时,将所述第二标识队列中的标识移动至所述第一标识队列。
本发明实施例的又一种实现方式中,还包括:
确定单元,用于当达到预设标识生成条件时,确定已生成标识的当前结束位置和标识生成数量;
所述生成单元403,还用于根据所述当前结束位置,按顺序生成所述标识生成数量个标识;
所述装置400还包括:
存储单元,用于将所述标识生成数量个标识存储至所述第二标识队列。
本发明实施例的又一种实现方式中,所述预设标识生成条件包括所述第一标识队列中剩余标识的数量达到阈值,或所述第二标识队列为空。
应理解的是,实施本发明实施例的方式与实施图2或图3所示实施例的方式相同,在此不再赘述。
本发明实施例中,服务器中包括第一标识队列和第二标识队列两个标识队列,并且两个队列中存储的标识是连续的,此时如此根据业务单号生成请求中目标数量和是否连续标识,可以从第一标识队列和/或第二标识队列中获取目标数量的标识,进而生成业务单号,从而能够避免请求多个连续的业务单号时,服务器中标识队列中标识不连续,导致无法满足请求需求的问题。
根据本发明的实施例,本发明还提供了一种电子设备和一种可读存储介质。
本发明的电子设备包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器执行本发明实施例所提供的业务单号的生成方法。
图5示出了可以应用本发明实施例的业务单号的生成方法或业务单号的生成装置的示例性***架构500。
如图5所示,***架构500可以包括终端设备501、502、503,网络504和服务器505。网络504用以在终端设备501、502、503和服务器505之间提供通信链路的介质。网络504可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备501、502、503通过网络504与服务器505交互,以接收或发送消息等。终端设备501、502、503上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备501、502、503可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器505可以是提供各种服务的服务器,例如对用户利用终端设备501、502、503所浏览的购物类网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的产品信息查询请求等数据进行分析等处理,并将处理结果(例如产品信息--仅为示例)反馈给终端设备。
需要说明的是,本发明实施例所提供的业务单号的生成方法一般由服务器505执行,相应地,业务单号的生成装置一般设置于服务器505中。本发明实施例所提供的业务单号的生成方法一般由终端设备501、502、503执行,相应地,业务单号的生成装置一般设置于终端设备501、502、503中。
应该理解,图5中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图6,其示出了适于用来实现本发明实施例的计算机***600的结构示意图。图6示出的计算机***仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图6所示,计算机***600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。在RAM 603中,还存储有***600操作所需的各种程序和数据。CPU 601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被中央处理单元(CPU)601执行时,执行本发明的***中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个单元、程序段、或代码的一部分,上述单元、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括接收单元、获取单元和生成单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,接收单元还可以被描述为“接收单元的功能的单元”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备执行本发明所提供的业务单号的生成方法。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (10)
1.一种业务单号的生成方法,其特征在于,所述方法包括:
接收业务单号生成请求,所述业务单号生成请求包括目标数量和是否连续标识,所述目标数量表示所述业务单号生成请求所请求生成业务单号的数量,所述是否连续标识表示所述业务单号生成请求所请求生成的业务单号是否连续;
根据所述目标数量和所述是否连续标识,从第一标识队列和/或第二标识队列中获取所述目标数量个标识;其中,所述第一标识队列和第二标识队列均存储连续标识;
对于所述目标数量个标识中的每个标识,根据所述每个标识生成对应的业务单号。
2.根据权利要求1所述的方法,其特征在于,所述根据所述目标数量和所述是否连续标识,从第一标识队列和/或第二标识队列中获取所述目标数量的标识,包括:
判断所述第一标识队列中的标识数量是否小于所述目标数量;
若否,则从所述第一标识队列中,按照标识的排列顺序获取所述目标数量个标识;
若是,则从所述第二标识队列、或者所述第一标识队列和所述第二标识队列中,按照标识的排列顺序获取所述目标数量个标识。
3.根据权利要求2所述的方法,其特征在于,若所述是否连续标识表示所述业务单号生成请求所请求生成的业务单号连续,则从所述第二标识队列、或者所述第一标识队列和所述第二标识队列中,按照标识的排列顺序获取所述目标数量个标识,包括:
从所述第二标识队列中,按照标识的排列顺序获取所述目标数量个标识。
4.根据权利要求2所述的方法,其特征在于,若所述是否连续标识表示所述业务单号生成请求所请求生成的业务单号不连续,则从所述第二标识队列、或者所述第一标识队列和所述第二标识队列中,按照标识的排列顺序获取所述目标数量个标识,包括:
按照标识的排列顺序,从所述第一标识队列中获取M个标识并从所述第二标识队列中获取N个标识,得到所述目标数量个标识;
其中,M和N为大于零的整数,M表示所述第一标识队列中的标识数量。
5.根据权利要求1所述的方法,其特征在于,还包括:
当所述第一标识队列为空时,将所述第二标识队列中的标识移动至所述第一标识队列。
6.根据权利要求1所述的方法,其特征在于,还包括:
当达到预设标识生成条件时,确定已生成标识的当前结束位置和标识生成数量;
根据所述当前结束位置,按顺序生成所述标识生成数量个标识;
将所述标识生成数量个标识存储至所述第二标识队列。
7.根据权利要求6所述的方法,其特征在于,所述预设标识生成条件包括所述第一标识队列中剩余标识的数量达到阈值,或所述第二标识队列为空。
8.一种业务单号的生成装置,其特征在于,包括:
接收单元,用于接收业务单号生成请求,所述业务单号生成请求包括目标数量和是否连续标识,所述目标数量表示所述业务单号生成请求所请求生成业务单号的数量,所述是否连续标识表示所述业务单号生成请求所请求生成的业务单号是否连续;
获取单元,用于根据所述目标数量和所述是否连续标识,从第一标识队列和/或第二标识队列中获取所述目标数量个标识;其中,所述第一标识队列和第二标识队列均存储连续标识;
生成单元,用于对于所述目标数量个标识中的每个标识,根据所述每个标识生成对应的业务单号。
9.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的方法。
10.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-7中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010037532.8A CN113127561B (zh) | 2020-01-14 | 2020-01-14 | 业务单号的生成方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010037532.8A CN113127561B (zh) | 2020-01-14 | 2020-01-14 | 业务单号的生成方法、装置、电子设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113127561A true CN113127561A (zh) | 2021-07-16 |
CN113127561B CN113127561B (zh) | 2023-09-22 |
Family
ID=76771117
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010037532.8A Active CN113127561B (zh) | 2020-01-14 | 2020-01-14 | 业务单号的生成方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113127561B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113592458A (zh) * | 2021-08-05 | 2021-11-02 | 百融云创科技股份有限公司 | 一种号码分配方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3623006A (en) * | 1970-06-29 | 1971-11-23 | Burroughs Corp | Queueing device for the selection of requests for access to a storage medium |
CN103647833A (zh) * | 2013-12-16 | 2014-03-19 | 百度在线网络技术(北京)有限公司 | 连续序号生成***和方法 |
US20170126818A1 (en) * | 2015-10-28 | 2017-05-04 | Sk Planet Co., Ltd. | Method and apparatus for providing beacon service |
CN108509433A (zh) * | 2017-02-23 | 2018-09-07 | 北京京东金融科技控股有限公司 | 基于分布式***的生成序列号的方法、装置及电子设备 |
CN109525658A (zh) * | 2018-11-09 | 2019-03-26 | 广州虎牙科技有限公司 | 一种产号方法、服务器、设备、存储介质和业务*** |
CN110188103A (zh) * | 2019-05-27 | 2019-08-30 | 深圳乐信软件技术有限公司 | 数据对账方法、装置、设备和存储介质 |
-
2020
- 2020-01-14 CN CN202010037532.8A patent/CN113127561B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3623006A (en) * | 1970-06-29 | 1971-11-23 | Burroughs Corp | Queueing device for the selection of requests for access to a storage medium |
CN103647833A (zh) * | 2013-12-16 | 2014-03-19 | 百度在线网络技术(北京)有限公司 | 连续序号生成***和方法 |
US20170126818A1 (en) * | 2015-10-28 | 2017-05-04 | Sk Planet Co., Ltd. | Method and apparatus for providing beacon service |
CN108509433A (zh) * | 2017-02-23 | 2018-09-07 | 北京京东金融科技控股有限公司 | 基于分布式***的生成序列号的方法、装置及电子设备 |
CN109525658A (zh) * | 2018-11-09 | 2019-03-26 | 广州虎牙科技有限公司 | 一种产号方法、服务器、设备、存储介质和业务*** |
CN110188103A (zh) * | 2019-05-27 | 2019-08-30 | 深圳乐信软件技术有限公司 | 数据对账方法、装置、设备和存储介质 |
Non-Patent Citations (1)
Title |
---|
陈玉平;: "浅谈石材行业订单号编码规则及应用", 石材, no. 05 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113592458A (zh) * | 2021-08-05 | 2021-11-02 | 百融云创科技股份有限公司 | 一种号码分配方法及装置 |
CN113592458B (zh) * | 2021-08-05 | 2024-01-12 | 百融云创科技股份有限公司 | 一种号码分配方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113127561B (zh) | 2023-09-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110471848B (zh) | 一种动态返回报文的方法和装置 | |
CN109582873B (zh) | 用于推送信息的方法和装置 | |
CN110706093A (zh) | 一种账务处理方法和装置 | |
CN108011949B (zh) | 用于获取数据的方法和装置 | |
CN111478781B (zh) | 一种消息广播的方法和装置 | |
CN109428926B (zh) | 一种调度任务节点的方法和装置 | |
CN111062572A (zh) | 任务分配的方法和装置 | |
CN108764866B (zh) | 用于分配资源、领取资源的方法和设备 | |
CN110113176B (zh) | 用于配置服务器的信息同步方法及装置 | |
CN113127561B (zh) | 业务单号的生成方法、装置、电子设备和存储介质 | |
CN111176641B (zh) | 流程节点执行方法、装置、介质及电子设备 | |
CN113742389A (zh) | 一种业务处理方法和装置 | |
CN111580882A (zh) | 应用程序启动方法、装置、计算机***和介质 | |
CN108804442B (zh) | 序列号生成方法和装置 | |
CN113762674B (zh) | 订单配送方法和装置 | |
CN114417318A (zh) | 第三方页面的跳转方法、装置和电子设备 | |
CN108683608B (zh) | 分配流量的方法和装置 | |
CN108696472B (zh) | 请求处理方法和装置 | |
CN109087097B (zh) | 一种更新链码同一标识的方法和装置 | |
CN109840073B (zh) | 业务流程的实现方法和装置 | |
CN111970338A (zh) | 基于云函数的请求处理方法、装置及计算机可读介质 | |
CN109213815B (zh) | 控制执行次数的方法、装置、服务器终端以及可读介质 | |
CN112784187A (zh) | 页面展示方法和装置 | |
CN113766437B (zh) | 一种短信发送方法和装置 | |
CN112015565A (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 |