gosnowflake

package module
v0.0.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 20, 2021 License: Apache-2.0 Imports: 4 Imported by: 0

README

go-snowflake

介绍

Go 版分布式系统生成唯一ID算法(Snowflake)

download
go get gitee.com/lingdun/gosnowflake
example
package main

import (
	"fmt"
	"gitee.com/misaka-0x0d/gosnowflake"
)

func main()  {
	twepoc := int64(1585644268888)
    datacenterId := 1
    workerId := 1

	err, id := gosnowflake.NewIdWorker(workerId, datacenterId, twepoc)
	if err != nil {
		panic(err)
	}

	if err, id := id.NextId(); err == nil {
		fmt.Printf("gen id: %d", id)
	}else {
		panic(err)
	}
}

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type IdWorker

type IdWorker struct {
	// contains filtered or unexported fields
}

func NewIdWorker

func NewIdWorker(workerId, dataCenterId, epoch int64) (error, *IdWorker)

NewIdWorker new worker

func (*IdWorker) GenTime

func (i *IdWorker) GenTime() int64

GenTime 获取当前时间, 单位是毫秒

func (*IdWorker) GetDataCenterID

func (i *IdWorker) GetDataCenterID() int64

GetDataCenterID 获得datacenterID

func (*IdWorker) GetWorkerId

func (i *IdWorker) GetWorkerId() int64

GetWorkerId 获得workerID

func (*IdWorker) NextId

func (i *IdWorker) NextId() (error, int64)

NextId 生成一个ID

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL