python - 即使多个脚本同时运行,也会生成一个唯一的整数?

时间:2013-03-11 07:49:10

标签: python

我有一个快速将数据插入数据库的函数,我还需要为每个函数存储一个唯一的整数。

我正在考虑使用圆形microtime,但由于同时运行多个脚本,我担心会遇到冲突。

有人可以推荐一个解决方案吗?

2 个答案:

答案 0 :(得分:1)

您确实应该选择一种机制来逐步生成数据库。

您可以查看uuid module以在Python端生成随机ID:

  

该模块提供了不可变的UUID对象(UUID类)和函数uuid1(),uuid3(),uuid4(),uuid5(),用于生成RFC 4122中指定的版本1,3,4和5 UUID。

根据RFC 4122 [强调我的]:

  

此规范定义了统一资源名称命名空间      UUID(通用唯一标识符),也称为GUID(全球范围      唯一标识符)。 UUID长128位,可以保证      空间和时间的独特性。 UUID最初用于      Apollo网络计算系统和后来的开放软件      基金会(OSF)分布式计算环境(DCE),然后      在Microsoft Windows平台中。

     

本规范源自DCE规范      OSF的亲切许可(现称为The Open Group)。      来自早期版本的DCE规范的信息已经存在      纳入本文件。

答案 1 :(得分:0)

有几种可能的方法:

  1. 将唯一ID的生成委派给数据库引擎。许多发动机都提供这样的设施。
  2. 拥有自己的集中服务,可以生成ID,并让您的脚本与该服务通信。
  3. 让每个脚本生成自己的ID;为了确保唯一性,在id中加入一个脚本独有的令牌(例如进程ID和/或IP或MAC地址)。