Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
yitter
雪花ID全家桶(SnowFlake IdGenerator)
提交
15cf0992
雪
雪花ID全家桶(SnowFlake IdGenerator)
项目概览
yitter
/
雪花ID全家桶(SnowFlake IdGenerator)
10 个月 前同步成功
通知
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,体验更适合开发者的 AI 搜索 >>
提交
15cf0992
编写于
6月 20, 2023
作者:
yitter
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
auto commit
上级
d12b8e9d
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
105 addition
and
4 deletion
+105
-4
Go/regworkerid/main.go
Go/regworkerid/main.go
+4
-4
Tools/AutoRegisterWorkerId/lib/workeridgo.h
Tools/AutoRegisterWorkerId/lib/workeridgo.h
+101
-0
未找到文件。
Go/regworkerid/main.go
浏览文件 @
15cf0992
...
...
@@ -90,11 +90,11 @@ func Validate(workerId int32) int32 {
// To Build a dll/so:
// windows:
// go build -o ./target/
yitidgen
go.dll -buildmode=c-shared main.go
// // go build -o ./target/
yitidgen
go.dll -buildmode=c-shared main.go reg.go
// go build -o ./target/
workerid
go.dll -buildmode=c-shared main.go
// // go build -o ./target/
workerid
go.dll -buildmode=c-shared main.go reg.go
// linux init: go install -buildmode=shared -linkshared std
// go build -o ./target/
yitidgen
go.so -buildmode=c-shared main.go
// go build -o ./target/
yitidgen
go.so -buildmode=c-shared main.go reg.go
// go build -o ./target/
workerid
go.so -buildmode=c-shared main.go
// go build -o ./target/
workerid
go.so -buildmode=c-shared main.go reg.go
// https://books.studygolang.com/advanced-go-programming-book/ch2-cgo/ch2-09-static-shared-lib.html
Tools/AutoRegisterWorkerId/lib/
yitidgen
go.h
→
Tools/AutoRegisterWorkerId/lib/
workerid
go.h
浏览文件 @
15cf0992
...
...
@@ -69,13 +69,31 @@ extern "C" {
#endif
// 注册一个 WorkerId,会先注销所有本机已注册的记录
extern
__declspec
(
dllexport
)
GoInt32
RegisterOne
(
char
*
ip
,
GoInt32
port
,
char
*
password
,
GoInt32
maxWorkerId
,
GoInt
database
);
// 注销本机已注册的 WorkerId
// RegisterOne 注册一个 WorkerId,会先注销所有本机已注册的记录
// address: Redis连接地址,单机模式示例:127.0.0.1:6379,哨兵/集群模式示例:127.0.0.1:26380,127.0.0.1:26381,127.0.0.1:26382
// password: Redis连接密码
// db: Redis指定存储库,示例:1
// sentinelMasterName: Redis 哨兵模式下的服务名称,示例:mymaster,非哨兵模式传入空字符串即可
// minWorkerId: WorkerId 最小值,示例:30
// maxWorkerId: WorkerId 最大值,示例:63
// lifeTimeSeconds: WorkerId缓存时长(秒,3的倍数)
extern
__declspec
(
dllexport
)
GoInt32
RegisterOne
(
char
*
address
,
char
*
password
,
GoInt
db
,
char
*
sentinelMasterName
,
GoInt32
minWorkerId
,
GoInt32
maxWorkerId
,
GoInt32
lifeTimeSeconds
);
// RegisterMany 注册多个 WorkerId,会先注销所有本机已注册的记录
// address: Redis连接地址,单机模式示例:127.0.0.1:6379,哨兵/集群模式示例:127.0.0.1:26380,127.0.0.1:26381,127.0.0.1:26382
// password: Redis连接密码
// db: Redis指定存储库,示例:1
// sentinelMasterName: Redis 哨兵模式下的服务名称,示例:mymaster,非哨兵模式传入空字符串即可
// maxWorkerId: WorkerId 最大值,示例:63
// minWorkerId: WorkerId 最小值,示例:30
// totalCount: 获取N个WorkerId,示例:5
// lifeTimeSeconds: WorkerId缓存时长(秒,3的倍数)
extern
__declspec
(
dllexport
)
GoSlice
RegisterMany
(
char
*
address
,
char
*
password
,
GoInt
db
,
char
*
sentinelMasterName
,
GoInt32
minWorkerId
,
GoInt32
maxWorkerId
,
GoInt32
totalCount
,
GoInt32
lifeTimeSeconds
);
// UnRegister 注销本机已注册的 WorkerId
extern
__declspec
(
dllexport
)
void
UnRegister
();
// 检查本地WorkerId是否有效(0-有效,其它-无效)
//
Validate
检查本地WorkerId是否有效(0-有效,其它-无效)
extern
__declspec
(
dllexport
)
GoInt32
Validate
(
GoInt32
workerId
);
#ifdef __cplusplus
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录