This repository has been archived on 2026-01-07. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
Game/Server/common/discover/common/tool.go
2025-06-25 00:01:48 +08:00

29 lines
528 B
Go

package common
import (
"common/db/etcd"
"common/log"
"context"
clientv3 "go.etcd.io/etcd/client/v3"
)
func NewLeaseAndKeepAlive(ttl int64) (clientv3.LeaseID, error) {
lease, err := etcd.Client().Grant(context.Background(), ttl)
if err != nil {
return 0, err
}
chKeepAlive, err := etcd.Client().KeepAlive(context.Background(), lease.ID)
if err != nil {
return 0, err
}
go func() {
for r := range chKeepAlive {
if r == nil {
log.Errorf("lease timeout!")
return
}
}
}()
return lease.ID, nil
}