refactor(print): 将 print 包重命名为 printer 并更新所有引用 将项目中的 print 包统一重命名为 printer,以避免与标准库或第三方库产生命名冲突。同时, 更新了所有相关模块对该包的引用,确保功能一致性和代码可维护性。 涉及文件包括: - conf/new.go - infra/service.go - service/register.go - service/service.go - with/databases.go - with/etcd.go - with/memory.go - with/redis.go 此外,删除了以下已废弃或未使用的代码文件: - cmd/cmd.go - data/map_float.go - data/map_string.go - oplog/new.go - oplog/types.go - print/print.go - utils/ext.go ```
55 lines
1.1 KiB
Go
55 lines
1.1 KiB
Go
package infra
|
|
|
|
import (
|
|
"context"
|
|
"log"
|
|
"time"
|
|
|
|
"git.apinb.com/bsm-sdk/core/printer"
|
|
"git.apinb.com/bsm-sdk/core/utils"
|
|
clientv3 "go.etcd.io/etcd/client/v3"
|
|
)
|
|
|
|
var (
|
|
Service service
|
|
RootPrefix string = "/bsm_services/"
|
|
)
|
|
|
|
type service struct{}
|
|
|
|
func (s *service) Register(cli *clientv3.Client, serviceName string, port string) error {
|
|
lease := clientv3.NewLease(cli)
|
|
grantResp, err := lease.Grant(context.TODO(), 5)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
serviceAddr := utils.GetLocationIP() + ":" + port
|
|
|
|
key := RootPrefix + serviceName + "/" + utils.Int642String(time.Now().UnixNano())
|
|
_, err = cli.KV.Put(context.TODO(), key, serviceAddr, clientv3.WithLease(grantResp.ID))
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
keepAliveChan, err := lease.KeepAlive(context.TODO(), grantResp.ID)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
printer.Info("[BSM Register] Service Key: %s", key)
|
|
printer.Info("[BSM Register] Service Val: %s", serviceAddr)
|
|
|
|
printer.Success("[BSM Register] Service Register Complete.")
|
|
|
|
go func() {
|
|
for keepAliveResp := range keepAliveChan {
|
|
if keepAliveResp == nil {
|
|
log.Println("LeaseKeepAlive", "Failed")
|
|
return
|
|
}
|
|
}
|
|
}()
|
|
return nil
|
|
}
|