Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
yitter
雪花ID全家桶(SnowFlake IdGenerator)
提交
2b5744c3
雪
雪花ID全家桶(SnowFlake IdGenerator)
项目概览
yitter
/
雪花ID全家桶(SnowFlake IdGenerator)
11 个月 前同步成功
通知
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,发现更多精彩内容 >>
提交
2b5744c3
编写于
3月 27, 2021
作者:
yitter
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
auto commit
上级
561e1a1b
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
17 addition
and
5 deletion
+17
-5
Rust/source/src/lib.rs
Rust/source/src/lib.rs
+6
-0
Rust/source/src/yitgen/contract/id_generator_options.rs
Rust/source/src/yitgen/contract/id_generator_options.rs
+1
-1
Rust/source/src/yitgen/core/snow_worker_m1.rs
Rust/source/src/yitgen/core/snow_worker_m1.rs
+3
-3
Rust/source/src/yitgen/gen/yit_id_helper.rs
Rust/source/src/yitgen/gen/yit_id_helper.rs
+7
-1
未找到文件。
Rust/source/src/lib.rs
浏览文件 @
2b5744c3
mod
yitgen
;
use
yitgen
::
gen
::
YitIdHelper
;
use
yitgen
::
contract
::
*
;
...
...
@@ -8,6 +9,11 @@ pub extern "C" fn SetIdGenerator(options: IdGeneratorOptions) {
YitIdHelper
::
SetIdGenerator
(
options
);
}
#[no_mangle]
pub
extern
"C"
fn
SetWorkerId
(
workerId
:
u32
)
{
YitIdHelper
::
SetWorkerId
(
workerId
);
}
#[no_mangle]
pub
extern
"C"
fn
NextId
()
->
i64
{
YitIdHelper
::
NextId
()
...
...
Rust/source/src/yitgen/contract/id_generator_options.rs
浏览文件 @
2b5744c3
...
...
@@ -16,7 +16,7 @@ pub struct IdGeneratorOptions {
pub
SeqBitLength
:
u8
,
/// 最大序列数(含),(由 SeqBitLength 计算的最大值)
pub
MaxSeqNumber
:
u32
,
/// 最小序列数(含),默认5,不小于
1
,不大于 MaxSeqNumber
/// 最小序列数(含),默认5,不小于
5
,不大于 MaxSeqNumber
pub
MinSeqNumber
:
u32
,
/// 最大漂移次数(含),默认2000,推荐范围 500-20000(与计算能力有关)
pub
TopOverCostCount
:
u32
,
...
...
Rust/source/src/yitgen/core/snow_worker_m1.rs
浏览文件 @
2b5744c3
...
...
@@ -89,10 +89,10 @@ impl SnowWorkerM1 {
}
// MinSeqNumber
if
options
.MinSeqNumber
>
maxSeqNumber
{
panic!
(
"MinSeqNumber error. (range:[
1
, {}]"
,
maxSeqNumber
);
if
options
.MinSeqNumber
>
maxSeqNumber
||
options
.MinSeqNumber
<
5
{
panic!
(
"MinSeqNumber error. (range:[
5
, {}]"
,
maxSeqNumber
);
}
else
{
self
.MinSeqNumber
=
options
.MinSeqNumber
;
self
.MinSeqNumber
=
if
options
.MinSeqNumber
<=
0
{
5
}
else
{
options
.MinSeqNumber
}
;
}
self
.TopOverCostCount
=
if
options
.TopOverCostCount
==
0
{
2000
}
else
{
options
.TopOverCostCount
};
...
...
Rust/source/src/yitgen/gen/yit_id_helper.rs
浏览文件 @
2b5744c3
...
...
@@ -13,7 +13,6 @@ pub struct YitIdHelper;
static
mut
idGenInstance
:
Option
<
Arc
<
Mutex
<
DefaultIdGenerator
>>>
=
None
;
impl
YitIdHelper
{
fn
IdGenInstance
()
->
Arc
<
Mutex
<
DefaultIdGenerator
>>
{
unsafe
{
idGenInstance
.get_or_insert_with
(||
{
...
...
@@ -28,6 +27,13 @@ impl YitIdHelper {
idgen
.Worker
.SetOptions
(
options
);
}
pub
fn
SetWorkerId
(
workerId
:
u32
)
{
let
mut
idgenArc
=
YitIdHelper
::
IdGenInstance
();
let
mut
idgen
=
idgenArc
.lock
()
.unwrap
();
let
mut
options
=
IdGeneratorOptions
::
New
(
workerId
);
idgen
.Worker
.SetOptions
(
options
);
}
pub
fn
NextId
()
->
i64
{
let
mut
idgenArc
=
YitIdHelper
::
IdGenInstance
();
let
mut
idgen
=
idgenArc
.lock
()
.unwrap
();
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录