gpt4 book ai didi

python - 如何生成可按时间排序的唯一 ID?

转载 作者:行者123 更新时间:2023-12-03 19:04:31 24 4
gpt4 key购买 nike

有没有办法生成一个普遍唯一的 ID,它的值总是随着它生成的“时间”而增加?我们只能为这个问题假设 UTC 时区。
我对类时间排序能力的具体意思是:

from time import sleep

id1 = generate_unique_id()
sleep(1)

id2 = generate_unique_id()
sleep(1)

id3 = generate_uniqueid()

assert id1 < id2
assert id2 < id3
所以 id1 可能是 "abcdefgh-ksfn-123" , id2 可以是 "abcdefgh-ksfn-231"等等
我真的不希望直接使用 UTC 时间戳作为 ID,因为它确实包含一些我不希望向具有此 ID 的用户公开的信息。我们还可以假设此 ID 将同时生成,即有可能两次单独执行的时间参数相同(可能性很小,但确实存在),但 ID 应该不同。
Python/3rd 方模块中是否已经存在类似的东西?
如果不是,最好的方法是什么?甚至可以像这样生成ID吗?

最佳答案

就在这里。您可以使用 uuid 然后是 uuid1()函数提供了你想要的:

 uuid.uuid1(0, 0)
将提供类型为 1 的 UUID,节点 ID 为 0,时钟序列为 0。剩余的 60 位将是单调递增的时间序列,因此是可排序的。
您可以根据需要为每个进程使用不同的节点 ID(然后,排序将按节点顺序进行:首先是节点 A 的所有 UUID,然后是节点 B 的所有 UUID),或者将 PID 作为时钟序列以确保没有两个进程将获得相同的 UUID(在这种情况下,排序时,UUID 将按时间顺序排序,然后按 PID 顺序):
可以这么说,
UUID  = NODENODE-NODE-CLOCKCLOCKCLOCKCLOCK-SEQSEQ

关于python - 如何生成可按时间排序的唯一 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63969889/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com