add RegisterCheck web server option for internal health checks

Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org>
This commit is contained in:
2019-12-05 17:15:35 +03:00
parent 18cf025056
commit a957e90ca8
3 changed files with 24 additions and 1 deletions

View File

@@ -25,6 +25,9 @@ type Options struct {
RegisterTTL time.Duration
RegisterInterval time.Duration
// RegisterCheck runs a check function before registering the service
RegisterCheck func(context.Context) error
Server *http.Server
Handler http.Handler
@@ -62,6 +65,10 @@ func newOptions(opts ...Option) Options {
o(&opt)
}
if opt.RegisterCheck == nil {
opt.RegisterCheck = DefaultRegisterCheck
}
return opt
}
@@ -225,3 +232,10 @@ func StaticDir(d string) Option {
o.StaticDir = d
}
}
// RegisterCheck run func before registry service
func RegisterCheck(fn func(context.Context) error) Option {
return func(o *Options) {
o.RegisterCheck = fn
}
}