2016-11-17 23:03:54 +02:00
|
|
|
package consul
|
|
|
|
|
|
|
|
import (
|
2018-03-03 13:53:52 +02:00
|
|
|
"context"
|
2018-03-19 15:34:56 +02:00
|
|
|
"time"
|
2018-03-03 13:53:52 +02:00
|
|
|
|
2016-11-17 23:03:54 +02:00
|
|
|
consul "github.com/hashicorp/consul/api"
|
|
|
|
"github.com/micro/go-micro/registry"
|
|
|
|
)
|
|
|
|
|
|
|
|
func Config(c *consul.Config) registry.Option {
|
|
|
|
return func(o *registry.Options) {
|
|
|
|
if o.Context == nil {
|
|
|
|
o.Context = context.Background()
|
|
|
|
}
|
|
|
|
o.Context = context.WithValue(o.Context, "consul_config", c)
|
|
|
|
}
|
|
|
|
}
|
2018-03-19 15:34:56 +02:00
|
|
|
|
|
|
|
//
|
|
|
|
// 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)
|
|
|
|
}
|
|
|
|
}
|