internal/api/health.go
internal/api · 68 lines · 5 declarations · source
Declarations
type Readiness
type Readiness struct {
mu sync.Mutex
check func(context.Context) error
checking bool
checkedAt time.Time
ready bool
}
Readiness permits one dependency check at a time and caches either result for one second. Probe clients cannot amplify pool acquisition or cancel a shared check to poison its result.
func NewReadiness
func NewReadiness(check func(context.Context) error) *Readiness
method Readiness.ServeHTTP
func (h *Readiness) ServeHTTP(w http.ResponseWriter, r *http.Request)
func HealthHandler
func HealthHandler(ready http.Handler) http.Handler
HealthHandler exposes only liveness/readiness for a worker's loopback listener.
func registerHealth
func registerHealth(mux *http.ServeMux, ready http.Handler)