我们可以在当前进程中使用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/

10-16 14:24