31 lines
532 B
Go
31 lines
532 B
Go
package utils
|
|
|
|
import (
|
|
"github.com/sony/sonyflake/v2"
|
|
"log"
|
|
)
|
|
|
|
var instance *sonyflake.Sonyflake
|
|
|
|
func InitSnowflake(node int64) *sonyflake.Sonyflake {
|
|
n, err := sonyflake.New(sonyflake.Settings{
|
|
BitsMachineID: 10,
|
|
MachineID: func() (int, error) {
|
|
return int(node), nil
|
|
},
|
|
})
|
|
if err != nil {
|
|
log.Fatalf("create snowflake's node failed: %v", err)
|
|
}
|
|
instance = n
|
|
return instance
|
|
}
|
|
|
|
func SnowflakeInt64() int64 {
|
|
if instance == nil {
|
|
log.Fatal("snowflake's not init")
|
|
}
|
|
id, _ := instance.NextID()
|
|
return id
|
|
}
|