2024-01-10 16:05:15 +08:00
|
|
|
|
package util
|
|
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
|
"fmt"
|
|
|
|
|
|
"time"
|
2025-06-26 17:46:08 +08:00
|
|
|
|
|
|
|
|
|
|
"github.com/sony/sonyflake"
|
2024-01-10 16:05:15 +08:00
|
|
|
|
)
|
|
|
|
|
|
|
2025-06-26 17:46:08 +08:00
|
|
|
|
var t = time.Unix(1594909810, 0) // 基准时间
|
2024-01-10 16:05:15 +08:00
|
|
|
|
|
2025-06-26 17:46:08 +08:00
|
|
|
|
var flake = sonyflake.NewSonyflake(sonyflake.Settings{
|
|
|
|
|
|
StartTime: t, // 必须设置基准时间,否则Sonyflake无法正常初始化
|
2024-01-10 16:05:15 +08:00
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
|
|
func GenSonyFlakeId() uint64 {
|
|
|
|
|
|
uuid, err := flake.NextID()
|
|
|
|
|
|
if err != nil {
|
2025-06-26 17:46:08 +08:00
|
|
|
|
fmt.Printf("生成SonyFlake ID失败: %v\n", err) // 明确错误信息
|
|
|
|
|
|
return 0 // 返回0表示生成失败(根据业务需求可调整)
|
2024-01-10 16:05:15 +08:00
|
|
|
|
}
|
|
|
|
|
|
return uuid
|
|
|
|
|
|
}
|