Use registry.options.Context to set Consul TCP check option
This commit is contained in:
		| @@ -2,6 +2,7 @@ package consul | ||||
|  | ||||
| import ( | ||||
| 	"context" | ||||
| 	"time" | ||||
|  | ||||
| 	consul "github.com/hashicorp/consul/api" | ||||
| 	"github.com/micro/go-micro/registry" | ||||
| @@ -15,3 +16,23 @@ func Config(c *consul.Config) registry.Option { | ||||
| 		o.Context = context.WithValue(o.Context, "consul_config", c) | ||||
| 	} | ||||
| } | ||||
|  | ||||
| // | ||||
| // RegisterTCPCheck will tell the service provider to check the service address | ||||
| // and port every `t` interval. It will enabled only if `t` is greater than 0. | ||||
| // See `TCP + Interval` for more information [1]. | ||||
| // | ||||
| // [1] https://www.consul.io/docs/agent/checks.html | ||||
| // | ||||
| func RegisterTCPCheck(t time.Duration) registry.Option { | ||||
| 	return func(o *registry.Options) { | ||||
| 		if t <= time.Duration(0) { | ||||
| 			return | ||||
| 		} | ||||
| 		if o.Context == nil { | ||||
| 			o.Context = context.Background() | ||||
| 		} | ||||
| 		o.Context = context.WithValue(o.Context, | ||||
| 			registry.ConsulRegisterTCPCheckKey, t) | ||||
| 	} | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user