【技术实现步骤摘要】
一种序列号生成方法、装置、电子设备及存储介质
[0001]本公开涉及数据处理
,尤其涉及一种序列号生成方法、装置、电子设备及存储介质。
技术介绍
[0002]随着电商业务的蓬勃发展,各种电商平台都提供了合作商引流能力,为了便于对订单进行跟踪,需要为每个订单生成其唯一对应的不与其他订单重复的订单号。
[0003]相关技术中,可以先生成一个随机数,然后基于固定格式对随机数进行处理,得到唯一的订单号,其中,随机数的生成可以使用Golang语言自带的math/rand包来实现,Golang语言是谷歌公司开发的一种编程语言,math/rand包是Golang语言中定义的一种随机数生成器。
[0004]但是,在应用程序多实例部署、高并发场景下,math/rand包可能会产生重复的随机数,进而导致产生的订单号重复,影响对订单进行跟踪。
技术实现思路
[0005]本公开提供一种序列号生成系统、方法、装置、电子设备及存储介质,以至少解决相关技术中在应用程序多实例部署、高并发场景下,math/rand包可能会产生重复的随机数,进而导致产生的订单号重复,影响对订单进行跟踪的问题。本公开的技术方案如下:
[0006]根据本公开实施例的第一方面,提供一种序列号生成方法,包括:
[0007]获取当前随机数;
[0008]将所述当前随机数与第一增量值相加,得到参考值;
[0009]在所述参考值小于预设最大值的情况下,对所述参考值及所述预设最大值进行取模运算,得到更新后的当前随机 ...
【技术保护点】
【技术特征摘要】
1.一种序列号生成方法,其特征在于,包括:获取当前随机数;将所述当前随机数与第一增量值相加,得到参考值;在所述参考值小于预设最大值的情况下,对所述参考值及所述预设最大值进行取模运算,得到更新后的当前随机数;在所述参考值大于或等于所述预设最大值的情况下,获取新的预设最大值,将所述新的预设最大值与第二增量值相减,对相减结果及所述新的预设最大值进行取模运算,得到更新后的当前随机数;对所述更新后的当前随机数进行变换处理,得到序列号。2.根据权利要求1所述的序列号生成方法,其特征在于,所述获取当前随机数,包括:从远程字典数据库中获取当前随机数;所述在所述参考值大于或等于所述预设最大值的情况下,获取新的预设最大值,包括:在所述参考值大于或等于所述预设最大值的情况下,从所述远程字典数据库中调用预设命令函数的输出结果,作为新的预设最大值;所述预设命令函数用于将预设键值与所述第二增量值相加,对所述预设键值进行更新并作为输出结果。3.根据权利要求2所述的序列号生成方法,其特征在于,所述从远程字典数据库中获取当前随机数,还包括:对所述远程字典数据库进行互斥锁加锁处理;在所述得到更新后的当前随机数之后,还包括:对所述远程字典数据库进行互斥锁解锁处理。4.根据权利要求2所述的序列号生成方法,其特征在于,所述在所述参考值大于或等于所述预设最大值的情况下,获取新的预设最大值,还包括:建立监测线程,所述监测线程用于按照预设周期获取所述预设命令函数的输出结果;在所述监测线程获取到所述预设命令函数的输出结果之后,对所述预设命令函数的输出结果进行互斥锁加锁处理;在所述得到更新后的当前随机数之后,还包括:对所述预设命令函数的输出结果进行互斥锁解锁处理,并结束所述监测线程。5.根据权利要求1所述的序列号生成方法,其特征在于,所述方法还包括:响应于序列号获取指令,获取降级标识;在所述降级标识为第一预设值的情况下,执行所述获取当前随机数的步骤;在所述降级标识为第二预设值的情况下,调用预设随机数生成器生成随机数,并对所述生成的随机数进行变换处理,得到序列号。6.根据权利要求5所述的序列号生成方法,其特征在于,所述方法还包括:在未获取到所述当前随机数,或未获取到所述新的预设最大值的情况下,将所述降级标识修改为所述第二预设值,并执行所述调用预设随机数生成器生成随机数,并对所述生成的随机数进行变换处理,得到序列号的步骤;直至获取到所述当前随机数,或获取到所述新的预设最大值,将所述降级标识修改为所述第一预设值。7.根据权利要求1所述的序列号生成方法,其特征在于,所述对所述更新后的当前随机
数进行变换处理,得到序列号,包括:获取用户编码及时间参数;拼接所述用户编码、所述时间参数及所述更新后的当前随机数,得到序列号。8.一种序列号生成装置,其特征在于,包括:获取模块,用于获取当前随机数;计算模块,用于将所述当前随机数与第一增量值相加,得到参考值;第一更新模块,用于在所述参考值小于预设最大值的情况下,对所述参考值及所述预设最...
【专利技术属性】
技术研发人员:马单,王健,徐锐,徐东明,徐蕾,
申请(专利权)人:中国电信股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。