一种序列号生成方法及装置制造方法及图纸

技术编号:15287952 阅读:77 留言:0更新日期:2017-05-10 12:20
本申请公开了一种序列号生成方法及装置。该方法包括:序列号生成器当从与所述序列号生成器关联的第一数据源中获取数值失败时,从与所述序列号生成器关联的第二数据源中确定出目标数据源;序列号生成器从所述目标数据源中获取数值;序列号生成器根据所获取的数值生成序列号。由于序列号生成器当从所关联第一数据源中获取数值失败时,可以从与该序列号生成器关联的第二数据源中确定出目标数据源,从该目标数据源中获取数值,并根据从目标数据源中获取的数值生成序列号。从而解决了现有技术中,从数据源中获取数值失败时,无法生成序列号的问题。

Serial number generating method and device

The invention discloses a method and a device for generating serial numbers. The method includes: the serial number generator when obtaining numerical failure from the first data source and the serial number generator associated when determining the target data source from the second data sources and the serial number generator connected in serial number generator; get the value from the target data source; serial number generator based on numerical generation the sequence number. The serial number generator when get the value associated with the first failure from the data source, can determine the target data source from the second data sources and the serial number generator association, get the value from the target data source, and numerical obtained from the target data source in a serial number according to the. Therefore, the problem that the prior art can not generate the serial number when the value is obtained from the data source is solved.

【技术实现步骤摘要】

本申请涉及计算机
,尤其涉及一种序列号生成方法及装置
技术介绍
序列号通常用来作为业务的唯一标识,在业务处理过程中得到了广泛的应用。比如,在生成订单的过程中,通过序列号来唯一标识对应的订单;在记录交易的过程中,通过序列号来唯一标识每一笔交易。目前通常使用诸如hilo高低位算法、数据库自增主键等方式生成序列号。当通过hilo高低位算法生成序列号时,将该hilo高低位算法作为数据源,从该数据源中获得数值(hilo高低位算法得到的值)之后,通过该数值生成序列号;当通过数据库自增主键等其它方式生成序列号时,也是将数据库自增序列(该自增序列通常可以作为数据库的主键)等作为数据源,并通过从数据源中获取的数值生成序列号。然而,在实际应用中,从数据源中获取数值时,通常会出现数值获取失败的情况。目前的这种序列号生成方式,当从某个数据源中获取数值失败时,会导致无法生成序列号。
技术实现思路
本申请实施例提供一种序列号生成方法及装置,用于解决现有技术中当从某个数据源中获取数值失败时,导致无法生成序列号的问题。本申请实施里提供了一种序列号生成方法,该方法包括:序列号生成器当从与所述序列号生成器关联的第一数据源中获取数值失败时,从与所述序列号生成器关联的第二数据源中确定出目标数据源;序列号生成器从所述目标数据源中获取数值;序列号生成器根据所获取的数值生成序列号。优选地,根据所获取的数值生成序列号,具体包括:获取序列号定义表的数据源标识字段的第一属性值;根据所获取的数值以及所述第一属性值生成序列号。优选地,根据所获取的数值以及所述第一属性值生成序列号,具体包括:将所述数值以及所述第一属性值,根据所述序列号定义表的序列号格式化字段的第二属性值的格式进行格式化处理;根据格式化处理的结果生成序列号。优选地,从所述目标数据源中获取数值,具体为:根据序列号定义表的序列号当前值字段的第三属性值从所述目标数据源中获取数值,所述第三属性值与上一次所生成的序列号相对应。优选地,根据所获取的数值生成序列号,具体包括:将所获取的所述数值与获取所述数值时的时间点相结合生成序列号。优选地,从与所述序列号生成器关联的第二数据源中确定出目标数据源,具体包括:根据预设的数据源优先级顺序,从与所述序列号生成器关联的第二数据源中确定出目标数据源;或,根据用户的输入信息,从与所述序列号生成器关联的第二数据源中确定出目标数据源。优选地,从所述目标数据源中获取数值,具体包括:获取所述目标数据源对应的锁对象或接口函数;根据所获取的锁对象或接口函数从所述目标数据源中获取数值。优选地,通过如下方式确定从第一数据源中获取数值失败:当从所述第一数据源中获取数据的时间大于预设时间阈值时,确定从所述第一数据源中获取数值失败。优选地,当从与所述序列号生成器关联的第一数据源中获取数值成功时,根据所获取的所述数值生成序列号。本申请实施例还提供了一种序列号生成装置,所述装置用于序列号生成器,所述装置包括:确定单元、获取单元以及生成单元,其中:所述确定单元,当从与所述序列号生成器关联的第一数据源中获取数值失败时,从与所述序列号生成器关联的第二数据源中确定出目标数据源;所述获取单元,从所述目标数据源中获取数值;所述生成单元,根据所获取的数值生成序列号。本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:采用很申请实施例所提供的序列号生成方法,由于序列号生成器当从所关联第一数据源中获取数值失败时,可以从与该序列号生成器关联的第二数据源中确定出目标数据源,从该目标数据源中获取数值,并根据从目标数据源中获取的数值生成序列号。从而解决了现有技术中,从数据源中获取数值失败时,无法生成序列号的问题。附图说明此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:图1为本申请实施例1提供的一种序列号生成方法的具体实现流程示意图;图2为本申请实施例1提供的一种序列号生成方法,在实际应用中各个数据源通过序列号生成器进行关联的示意图;图3为本申请实施例1提供的一种序列号生成方法,在实际应用中生成序列号的流程图;图4为本申请实施例2提供的一种序列号生成装置的具体结构示意图。具体实施方式为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。以下结合附图,详细说明本申请各实施例提供的技术方案。实施例1实施例1提供了一种序列号生成方法,用于解决现有技术中的问题。该方法用于序列号生成器,该序列号生成器能够用于生成序列号。其中,该序列号生成器关联多个数据源,各数据源中包括第一数据源以及第二数据源。需要另外说明的是,该第一数据源可以是与该序列号生成器关联的多个数据源中的任意一个数据源,也可以是与该序列号生成器关联的多个数据源中特定的某一个数据源;第二数据源可以是与该序列号生成器关联的多个数据源中,第一数据源之外的任意一个数据源,也可以是与该序列号生成器关联的多个数据源中,特定的某个数据源,这里并不对第一数据源与第二数据源之间的关系进行限定。比如说,在实际应用中,该第一数据源为主数据源,第二数据源备用数据源;或者,第一数据源为与该序列号生成器关联的多个数据源中,数据源优先级顺序最高的数据源,第一数据源之外的数据源为第二数据源;或者,第一数据源为与该序列号生成器关联的多个数据源中,使用频率最高的数据源,第一数据源之外的数据源为第二数据源;或者,第一数据源为与该序列号生成器关联的多个数据源中,任意的一个数据源,第一数据源之外的数据源为第二数据源。通常与序列号生成器关联的多个数据源,可以是如下数据源中任意的至少两个数据源;数据库Sequence、Redis、数据库预定义元数据、hilo高低位算法、数据库自增序列等。例如,多个数据源分别为数据库Sequence、Redis、数据库预定义元数据,其中,第一数据源为Redis,第二数据源为数据库Sequence和数据库预定义元数据。本申请实施例提供的序列号生成方法的具体流程示意图如图1所示,包括下述步骤:步骤S11:序列号生成器从第一数据源中获取数值,当从第一数据源中获取数值失败时,执行步骤S12至步骤S14,当从第一数据源中获取数值成功,时执行步骤S15。在实际应用中,从第一数据源中获取数值的方式通常可以有多种,这里可以列举几种常用的方式。方式一:可以先获取第一数据源对应的锁对象,再根据该锁对象来获取第一数据源中的数值。这种方式只有在获取锁对象之后,才能根据该锁对象获取第一数据源中的数值,如果获取锁对象失败,则不能实现从第一数据源中获取数值。因此可以通过这种方式来保持数据源的一致性,增加安全性。方式二:可以先获取第一数据源对应的接口函数,然后通过该接口函数从第一数据源中获取数值。例如,当该第一数据源为数据库预定义元数据时,可以通过接口函数nextKey从该第一数据源中获取数值。通常导致从第一数据源中获取数据失败的原因有多种,比如说,第一本文档来自技高网...
一种序列号生成方法及装置

【技术保护点】
一种序列号生成方法,其特征在于,所述方法包括:序列号生成器当从与所述序列号生成器关联的第一数据源中获取数值失败时,从与所述序列号生成器关联的第二数据源中确定出目标数据源;序列号生成器从所述目标数据源中获取数值;序列号生成器根据所获取的数值生成序列号。

【技术特征摘要】
1.一种序列号生成方法,其特征在于,所述方法包括:序列号生成器当从与所述序列号生成器关联的第一数据源中获取数值失败时,从与所述序列号生成器关联的第二数据源中确定出目标数据源;序列号生成器从所述目标数据源中获取数值;序列号生成器根据所获取的数值生成序列号。2.如权利要求1所述方法,其特征在于,根据所获取的数值生成序列号,具体包括:获取序列号定义表的数据源标识字段的第一属性值;根据所获取的数值以及所述第一属性值生成序列号。3.如权利要求2所述方法,其特征在于,根据所获取的数值以及所述第一属性值生成序列号,具体包括:将所述数值以及所述第一属性值,根据所述序列号定义表的序列号格式化字段的第二属性值的格式进行格式化处理;根据格式化处理的结果生成序列号。4.如权利要求1所述方法,其特征在于,从所述目标数据源中获取数值,具体为:根据序列号定义表的序列号当前值字段的第三属性值从所述目标数据源中获取数值,所述第三属性值与上一次所生成的序列号相对应。5.如权利要求1所述方法,其特征在于,根据所获取的数值生成序列号,具体包括:将所获取的所述数值与获取所述数值时的时间点相结合生成序列号。6.如权利要求1所述方法,其特征在于,从与所...

【专利技术属性】
技术研发人员:杨光润何继远彭小波朱蕾张恒周忠恳宋伟强
申请(专利权)人:上海艾融软件股份有限公司
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1