| @@ -127,6 +127,15 @@ func (c *consulConfig) Save(ctx context.Context) error { | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	buf, err := c.opts.Codec.Marshal(c.opts.Struct) | ||||
| 	if err == nil { | ||||
| 		_, err = c.cli.KV().Put(&api.KVPair{Key: c.path, Value: buf}, nil) | ||||
| 	} | ||||
|  | ||||
| 	if err != nil && !c.opts.AllowFail { | ||||
| 		return fmt.Errorf("consul path save error: %v", err) | ||||
| 	} | ||||
|  | ||||
| 	for _, fn := range c.opts.AfterSave { | ||||
| 		if err := fn(ctx, c); err != nil && !c.opts.AllowFail { | ||||
| 			return err | ||||
|   | ||||
| @@ -1,6 +1,8 @@ | ||||
| package consul | ||||
|  | ||||
| import ( | ||||
| 	"time" | ||||
|  | ||||
| 	"github.com/hashicorp/consul/api" | ||||
| 	"github.com/unistack-org/micro/v3/config" | ||||
| ) | ||||
| @@ -36,3 +38,9 @@ func TLSConfig(t *tls.Config) config.Option { | ||||
| 	return config.SetOption(tlsConfigKey{}, t) | ||||
| } | ||||
| */ | ||||
|  | ||||
| type timeoutKey struct{} | ||||
|  | ||||
| func Timeout(td time.Duration) config.Option { | ||||
| 	return config.SetOption(timeoutKey{}, td) | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user