import time
'''
配置一个唯一的ruid
props: None
return:
'''
class RuidGet(object):
'''
配置一个唯一的ruid
props: None
return:
'''
@classmethod
def get_str_ruid(cls):
'''
获取16进制字符串唯一id
:return:
'''
base_time = round(time.mktime(time.strptime('1970-01-02 00:00:00', '%Y-%m-%d %H:%M:%S'))*10**3)
ruid = round(time.time()*10**3) - base_time
time.sleep(0.001)
return str(hex(ruid)).replace('0x', '')
@classmethod
def get_int_ruid(cls):
'''
获取10进制整数唯一id
:return:
'''
base_time = round(time.mktime(time.strptime('1970-01-02 00:00:00', '%Y-%m-%d %H:%M:%S')) * 10 ** 3)
ruid = round(time.time() * 10 ** 3) - base_time
time.sleep(0.001)
return str(ruid)
if __name__ == '__main__':
id16 = RuidGet.get_str_ruid()
print(id16) # 179a32942da
id10 = RuidGet.get_int_ruid()
print(id10) # 1621940060893
python生成不重复id
于 2021-05-26 10:58:02 首次发布
该代码实现了一个名为RuidGet的类,用于生成基于时间戳的唯一标识。提供了两个静态方法:get_str_ruid()生成16进制字符串ID,get_int_ruid()生成10进制整数ID。ID基于当前时间与1970年1月2日之间的差值,并确保唯一性。

2137





