24 lines
319 B
Go

package utils
import (
"sync"
"github.com/bwmarrin/snowflake"
)
var (
nodeOnce sync.Once
node *snowflake.Node
nodeErr error
)
func NextID() (int64, error) {
nodeOnce.Do(func() {
node, nodeErr = snowflake.NewNode(1)
})
if nodeErr != nil {
return 0, nodeErr
}
return node.Generate().Int64(), nil
}