18 Star 177 Fork 36

vearch / vearch

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
time_generator.go 1.05 KB
一键复制 编辑 原始数据 按行查看 历史
ljeagle 提交于 2019-09-12 00:26 . update
// Copyright 2019 The Vearch Authors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
// implied. See the License for the specific language governing
// permissions and limitations under the License.
package uuid
import (
"strconv"
"sync"
"time"
)
// timeGenerator is for tests.
type timeGenerator struct {
sync.Mutex
// ensure clock moves forward
lastTimestamp int64
}
func NewTimeGenerator() Generator {
return &timeGenerator{lastTimestamp: time.Now().UnixNano()}
}
func (g *timeGenerator) GetUUID() string {
cur := time.Now().UnixNano()
g.Lock()
if cur == g.lastTimestamp {
cur++
}
g.lastTimestamp = cur
g.Unlock()
return strconv.FormatInt(cur, 10)
}
Go
1
https://gitee.com/vearch/vearch.git
git@gitee.com:vearch/vearch.git
vearch
vearch
vearch
7b3ddb2097c3

搜索帮助