12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- package mhayaSnowflake
- import (
- ccrypto "github.com/mhaya/extend/crypto"
- clog "github.com/mhaya/logger"
- )
- var (
- defaultNode *Node
- )
- func InitDefaultNode(str string) {
- var (
- crc32Value = int64(ccrypto.CRC32(str))
- nodeValue = crc32Value % nodeMax
- )
- SetDefaultNode(nodeValue)
- }
- func SetDefaultNode(nodeValue int64) {
- if defaultNode != nil {
- clog.Warn("default snowflake node is created.")
- return
- }
- var err error
- defaultNode, err = NewNode(nodeValue)
- if err != nil {
- clog.Warn(err)
- clog.Warnf("create default snowflake node fail. nodeValue = %d", nodeValue)
- }
- clog.Infof("[snowflake] nodeValue = %d, nodeMax = %d", nodeValue, nodeMax)
- }
- func Next() ID {
- return defaultNode.Generate()
- }
- func NextId() int64 {
- return defaultNode.Generate().Int64()
- }
|