|
@@ -29,8 +29,8 @@ func NewEtcd(endpoints ...string) *etcd {
|
|
|
* @param key 服务的key
|
|
|
* @param value
|
|
|
*/
|
|
|
-func (e *etcd) Register(key, value string) error {
|
|
|
- return e.register(key, value)
|
|
|
+func (e *etcd) Register(kvs ...string) error {
|
|
|
+ return e.register(kvs...)
|
|
|
}
|
|
|
|
|
|
/*
|
|
@@ -43,15 +43,23 @@ func (e *etcd) RegisterIpPort(key, port string) error {
|
|
|
return e.register(key, fmt.Sprintf("%s:%s", iputil.InternalIp(), port))
|
|
|
}
|
|
|
|
|
|
-func (e *etcd) register(key, value string) error {
|
|
|
- stop, err := NewPublisher(e.endpoints, key, value).Register()
|
|
|
- if err != nil {
|
|
|
- return err
|
|
|
+func (e *etcd) register(kvs ...string) error {
|
|
|
+ stops := []chan struct{}{}
|
|
|
+ var err error
|
|
|
+ for i := 0; i < len(kvs); i += 2 {
|
|
|
+ stop, e := NewPublisher(e.endpoints, kvs[i], kvs[i+1]).Register()
|
|
|
+ if err != nil {
|
|
|
+ err = e
|
|
|
+ break
|
|
|
+ }
|
|
|
+ stops = append(stops, stop)
|
|
|
}
|
|
|
quit := make(chan os.Signal, 1)
|
|
|
signal.Notify(quit, syscall.SIGINT, syscall.SIGTERM)
|
|
|
<-quit
|
|
|
- stop <- struct{}{}
|
|
|
+ for _, stop := range stops {
|
|
|
+ stop <- struct{}{}
|
|
|
+ }
|
|
|
return nil
|
|
|
}
|
|
|
|