我们可以使用process.hrtime()
作为当前进程内的通用唯一ID吗?
var uuid = parseInt(process.hrtime().join(''));
最佳答案
您可以使用process.hrtime()
来创建冲突几率较低的标识符,但它们不是唯一的,尤其是在应用程序重新启动时(如果您将其中任何一个持久保存到数据库中,这一点很重要)或类似),而不是在涉及多个线程/进程/实例时。
来自documentation :
These times are relative to an arbitrary time in the past, and not related to the time of day
此外,通过使用 parseInt(....join(''))
,您引入了第二种发生冲突的方式:例如[1, 23]
和 [12, 3]
将得到相同的结果。
如果您想构建自己的解决方案(a[0] * 1e9 + a[1]
是一种幼稚的方法),您还应该了解 JavaScript 的精度限制数字——hrtime()
返回一个元组而不仅仅是一个数字是有原因的。如果有疑问,当您需要正确的 UUID 时,您可能应该使用正确的 UUID ;-)
关于node.js - 我们可以在node.js中使用process.hrtime()作为UUID吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49708974/