-
Notifications
You must be signed in to change notification settings - Fork 0
/
easy.go
57 lines (47 loc) 路 1.44 KB
/
easy.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
package infra
import (
"strings"
clientv3 "go.etcd.io/etcd/client/v3"
_ "github.com/spacegrower/watermelon/infra/balancer"
"github.com/spacegrower/watermelon/infra/definition"
ide "github.com/spacegrower/watermelon/infra/internal/definition"
"github.com/spacegrower/watermelon/infra/internal/manager"
)
var (
defaultShutdownDelaySeconds = 15
)
func SetShutdownDelaySeconds(s int) {
defaultShutdownDelaySeconds = s
}
// RegisterETCDRegisterPrefixKey a function to change default register(etcd) prefix key
func RegisterETCDRegisterPrefixKey(prefix string) {
if !strings.HasPrefix(prefix, "/") {
prefix = "/" + prefix
}
manager.RegisterKV(ide.ETCDPrefixKey{}, prefix)
}
// ResolveEtcdClient a function to register etcd client to watermelon global
func RegisterEtcdClient(etcdConfig clientv3.Config) error {
client, err := clientv3.New(etcdConfig)
if err != nil {
return err
}
manager.RegisterEtcdClient(client)
return nil
}
// ResolveEtcdClient a function to get registed etcd client
func ResolveEtcdClient() *clientv3.Client {
client := manager.ResolveClient(definition.MANAGER_ETCD_REGISTER_KEY{})
if client == nil {
return nil
}
return client.(*clientv3.Client)
}
// RegisterRegionProxy set region's proxy endpoint
func RegisterRegionProxy(region, proxy string) {
manager.RegisterProxy(region, proxy)
}
// ResolveProxy return region's proxy, if it exist
func ResolveProxy(region string) string {
return manager.ResolveProxy(region)
}