Cat.Util/Cat.IdGenerator/SnowWorkerM1.cs

(开头部分) 7KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

using System;
using System.Collections.Generic;
using System.Text;
using System.Threading;
using System.Threading.Tasks;

namespace Cat.IdGenerator
{
   /// <summary>
   /// 雪花漂移算法
   /// </summary> 
   internal class SnowWorkerM1 : ISnowWorker
   {
      /// <summary>
      /// 基础时间
      /// </summary>
      protected readonly DateTime StartTimeUtc = new DateTime(2020, 2, 20, 2, 20, 2, 20, DateTimeKind.Utc);

      /// <summary>
      /// 机器码
      /// </summary>
      protected readonly ushort WorkerId = 0;

      /// <summary>
      /// 机器码位长
      /// (机器码+序列数<=22位)
      /// </summary>
      protected readonly byte WorkerIdBitLength = 0;

      /// <summary>
      /// 自增序列数位长
      /// (机器码+序列数<=22位)
      /// </summary>
      protected readonly byte SeqBitLength = 0;

      /// <summary>
      /// 最大序列数(含此值)
      /// 超过最大值,就会从MinSeqNumber开始
      /// </summary>
      protected readonly int MaxSeqNumber = 0;

      /// <summary>
      /// 最小序列数(含此值)
      /// </summary>
      protected readonly ushort MinSeqNumber = 0;

      /// <summary>
      /// 最大漂移次数
      /// </summary>
      protected readonly int TopOverCostCount = 0;

      protected readonly byte _TimestampShift = 0;
      protected static object _SyncLock = new object();

      protected ushort _CurrentSeqNumber;
      protected long _LastTimeTick = -1L;
      protected long _TurnBackTimeTick = -1L;

      protected bool _IsOverCost = false;
      protected int _OverCostCountInOneTerm = 0;
后面还有 238 行代码,购买后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。