我们可以在当前进程中使用process.hrtime()
作为通用唯一ID吗?
var uuid = parseInt(process.hrtime().join(''));
最佳答案
您可以使用process.hrtime()
创建标识符的机会很少,但是它们并不是唯一的,尤其是在应用程序重启期间(如果您将它们中的任何一个持久化到数据库或类似数据库中,则不重要),而不是在多个线程/进程/涉及实例。
从documentation:
这些时间与过去的任意时间有关,与一天中的时间无关
另外,通过使用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/