Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
yitter
雪花ID全家桶(SnowFlake IdGenerator)
提交
c669af4c
雪
雪花ID全家桶(SnowFlake IdGenerator)
项目概览
yitter
/
雪花ID全家桶(SnowFlake IdGenerator)
大约 1 年 前同步成功
通知
201
Star
3
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
雪
雪花ID全家桶(SnowFlake IdGenerator)
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
c669af4c
编写于
8月 31, 2021
作者:
yitter
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
auto commit
上级
2308932d
变更
8
隐藏空白更改
内联
并排
Showing
8 changed file
with
37 addition
and
37 deletion
+37
-37
C#.NET/source/Yitter.IdGenerator/Core/SnowWorkerM1.cs
C#.NET/source/Yitter.IdGenerator/Core/SnowWorkerM1.cs
+37
-37
JavaScript/.gitignore
JavaScript/.gitignore
+0
-0
JavaScript/README.md
JavaScript/README.md
+0
-0
JavaScript/index.js
JavaScript/index.js
+0
-0
JavaScript/package.json
JavaScript/package.json
+0
-0
JavaScript/test/process_test.js
JavaScript/test/process_test.js
+0
-0
JavaScript/test/test.js
JavaScript/test/test.js
+0
-0
JavaScript/test/test2.js
JavaScript/test/test2.js
+0
-0
未找到文件。
C#.NET/source/Yitter.IdGenerator/Core/SnowWorkerM1.cs
浏览文件 @
c669af4c
...
...
@@ -5,27 +5,27 @@
* 版权说明:只要保留本版权,你可以免费使用、修改、分发本代码。
* 免责条款:任何因为本代码产生的系统、法律、政治、宗教问题,均与版权所有者无关。
*
*/
using
System
;
using
System.Threading
;
*/
using
System
;
using
System.Threading
;
using
System.Threading.Tasks
;
namespace
Yitter.IdGenerator
{
/// <summary>
/// 雪花漂移算法
/// </summary>
internal
class
SnowWorkerM1
:
ISnowWorker
namespace
Yitter.IdGenerator
{
/// <summary>
/// 雪花漂移算法
/// </summary>
internal
class
SnowWorkerM1
:
ISnowWorker
{
/// <summary>
/// 基础时间
/// </summary>
protected
readonly
DateTime
BaseTime
;
protected
readonly
DateTime
BaseTime
;
/// <summary>
/// 机器码
/// </summary>
/// <summary>
/// 机器码
/// </summary>
protected
readonly
ushort
WorkerId
=
0
;
/// <summary>
...
...
@@ -40,7 +40,7 @@ namespace Yitter.IdGenerator
/// <summary>
/// 最大序列数(含)
/// </summary>
/// </summary>
protected
readonly
int
MaxSeqNumber
=
0
;
/// <summary>
...
...
@@ -57,11 +57,11 @@ namespace Yitter.IdGenerator
protected
static
object
_SyncLock
=
new
object
();
protected
ushort
_CurrentSeqNumber
;
protected
long
_LastTimeTick
=
0
;
// -1L
protected
long
_TurnBackTimeTick
=
0
;
// -1L;
protected
byte
_TurnBackIndex
=
0
;
protected
bool
_IsOverCost
=
false
;
protected
long
_LastTimeTick
=
0
;
// -1L
protected
long
_TurnBackTimeTick
=
0
;
// -1L;
protected
byte
_TurnBackIndex
=
0
;
protected
bool
_IsOverCost
=
false
;
protected
int
_OverCostCountInOneTerm
=
0
;
protected
int
_GenCountInOneTerm
=
0
;
protected
int
_TermIndex
=
0
;
...
...
@@ -71,8 +71,8 @@ namespace Yitter.IdGenerator
public
Action
<
OverCostActionArg
>
GenAction
{
get
;
set
;
}
public
SnowWorkerM1
(
IdGeneratorOptions
options
)
public
SnowWorkerM1
(
IdGeneratorOptions
options
)
{
// 1.BaseTime
if
(
options
.
BaseTime
!=
DateTime
.
MinValue
)
...
...
@@ -117,17 +117,17 @@ namespace Yitter.IdGenerator
MinSeqNumber
=
options
.
MinSeqNumber
;
// 7.Others
TopOverCostCount
=
options
.
TopOverCostCount
;
TopOverCostCount
=
options
.
TopOverCostCount
;
if
(
TopOverCostCount
==
0
)
{
TopOverCostCount
=
2000
;
}
_TimestampShift
=
(
byte
)(
WorkerIdBitLength
+
SeqBitLength
);
_CurrentSeqNumber
=
options
.
MinSeqNumber
;
//_BaseTimeTick = BaseTime.Ticks;
//_StartTimeTick = (long)(DateTime.UtcNow.Subtract(BaseTime).TotalMilliseconds) - Environment.TickCount;
_TimestampShift
=
(
byte
)(
WorkerIdBitLength
+
SeqBitLength
);
_CurrentSeqNumber
=
options
.
MinSeqNumber
;
//_BaseTimeTick = BaseTime.Ticks;
//_StartTimeTick = (long)(DateTime.UtcNow.Subtract(BaseTime).TotalMilliseconds) - Environment.TickCount;
}
...
...
@@ -137,7 +137,7 @@ namespace Yitter.IdGenerator
{
GenAction
(
arg
);
});
}
}
private
void
BeginOverCostAction
(
in
long
useTimeTick
)
{
...
...
@@ -338,11 +338,11 @@ namespace Yitter.IdGenerator
return
result
;
}
protected
virtual
long
GetCurrentTimeTick
()
{
//return (long)(DateTime.UtcNow - BaseTime).Ticks;
//return (long)(_StartTimeTick + Environment.TickCount);
return
(
long
)(
DateTime
.
UtcNow
-
BaseTime
).
TotalMilliseconds
;
protected
virtual
long
GetCurrentTimeTick
()
{
//return (long)(DateTime.UtcNow - BaseTime).Ticks;
//return (long)(_StartTimeTick + Environment.TickCount);
return
(
long
)(
DateTime
.
UtcNow
-
BaseTime
).
TotalMilliseconds
;
}
protected
virtual
long
GetNextTimeTick
()
...
...
@@ -364,6 +364,6 @@ namespace Yitter.IdGenerator
{
return
_IsOverCost
?
NextOverCostId
()
:
NextNormalId
();
}
}
}
}
}
}
}
Node.js
/.gitignore
→
JavaScript
/.gitignore
浏览文件 @
c669af4c
文件已移动
Node.js
/README.md
→
JavaScript
/README.md
浏览文件 @
c669af4c
文件已移动
Node.js
/index.js
→
JavaScript
/index.js
浏览文件 @
c669af4c
文件已移动
Node.js
/package.json
→
JavaScript
/package.json
浏览文件 @
c669af4c
文件已移动
Node.js
/test/process_test.js
→
JavaScript
/test/process_test.js
浏览文件 @
c669af4c
文件已移动
Node.js
/test/test.js
→
JavaScript
/test/test.js
浏览文件 @
c669af4c
文件已移动
Node.js
/test/test2.js
→
JavaScript
/test/test2.js
浏览文件 @
c669af4c
文件已移动
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录