Documentation ¶
Overview ¶
Package times 时间相关.
Index ¶
- Variables
- func Between(ctx context.Context, start, stop int, yield func(context.Context))
- func Hour(yield func()) func() bool
- func InScope(start, stop int) bool
- func Sleep(stop int) time.Duration
- func WithContextTimer(ctx context.Context, duration time.Duration, yield func())
- func WithTimer(duration time.Duration, yield func()) func()
- type IDWorker
Examples ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ErrLast = errors.New("last id after now")
Functions ¶
func Hour ¶
func Hour(yield func()) func() bool
Hour 整点运行,返回取消方法.
Example ¶
package main import ( "time" "github.com/xuender/kit/logs" "github.com/xuender/kit/times" ) func main() { logs.I.Println("start") cancel := times.Hour(func() { logs.I.Println("run") }) go func() { time.Sleep(time.Second) cancel() logs.I.Println("stop") }() logs.I.Println("sleep") time.Sleep(2 * time.Second) logs.I.Println("end") }
Output:
func WithContextTimer ¶ added in v1.0.12
Types ¶
type IDWorker ¶ added in v1.0.11
type IDWorker struct {
// contains filtered or unexported fields
}
func NewIDWorker ¶ added in v1.0.11
func NewIDWorker() *IDWorker
NewIDWorker 创建非分布式的 IDWorker.
Example ¶
ExampleNewIDWorker is an example function.
package main import ( "fmt" "github.com/xuender/kit/times" ) func main() { worker := times.NewIDWorker() size := 10000 ids := make(map[int64]int, size) for i := 0; i < size; i++ { ids[worker.ID()] = i } fmt.Println(len(ids)) }
Output: 10000
func NewIDWorkerByKey ¶ added in v1.0.11
NewIDWorkerByKey 根据字符串创建 IDWorker.
Example ¶
ExampleNewIDWorkerByKey is an example function.
package main import ( "fmt" "github.com/xuender/kit/times" ) func main() { worker1 := times.NewIDWorkerByKey("a") worker2 := times.NewIDWorkerByKey("b") fmt.Println(worker1.ID() != worker2.ID()) }
Output: true
func NewIDWorkerByMachine ¶ added in v1.0.11
NewIDWorkerByMachine 根据机器信息创建 IDWorker.
Example ¶
ExampleNewIDWorkerByMachine is an example function.
package main import ( "fmt" "github.com/xuender/kit/times" ) func main() { worker := times.NewIDWorkerByMachine(1, 19) size := 10000 ids := make(map[int64]int, size) for i := 0; i < size; i++ { ids[worker.ID()] = i } fmt.Println(len(ids)) }
Output: 10000
func (*IDWorker) IDAndError ¶ added in v1.0.11
IDAndError 生成ID和错误信息.
func (*IDWorker) IDs ¶ added in v1.0.11
Example ¶
ExampleIDWorker_IDs is an example function.
package main import ( "fmt" "github.com/xuender/kit/times" ) func main() { worker := times.NewIDWorker() size := 10000 ids := make(map[int64]int, size) for i, uid := range worker.IDs(size) { ids[uid] = i } fmt.Println(len(ids)) }
Output: 10000
Click to show internal directories.
Click to hide internal directories.