0
点赞
收藏
分享

微信扫一扫

Oracle锁机制之分类和死锁

49路末班车 2024-06-19 阅读 35

以下代码用于生成有序的GUID字符串。

使用方法为:new OrderedGUIDGenerator().NewGuid()即可生成根据时间排序的Guid字符串。

/**
 * 用于生成根据时间戳附加随机数确定的有序GUID值
 * 使用方法:var orderedGuid=new OrderedGUIDGenerator().NewGuid()
 */
export default class OrderedGUIDGenerator
 {
    //生成的Guid的格式为:dddddddd-dddd-Mddd-Ndnn-rrrrrrrrrrrr
    // - M = RFC 版本(version), 这里取为4
    // - N = RFC 变体(variant),这里固定为8
    // - d = 从公元1年1月1日0时至今的时间总长(以100ns为单位)
    // - n - 从公元1年1月1日0时至今的以纳秒为单位的时间的最后两位尾数(即在100ns范围内的尾数,其最小值0,最大值99,它是nanaseconds的最后两位尾数)
    // - r = 随机数(random bytes)

	
    private static DIFF:bigint=62135596800000000000n;  //从公元1年1月1日0时0分0秒到公元1970年1月1日0时0分0秒的纳秒数
    //nodeVitualStartTime表示node运行时启动时的纳秒数(从公元1年1月1日0时0分0秒算起)。资料显示,process.hrtime.bigint()方法计算的是方法调用时刻与node启动时的时间差(ns)
	private static nodeVitualStartTime:big
举报

相关推荐

0 条评论