func()

in internal/healthcheck/healthcheck.go [81:111]


func (c *Check) HandleReadiness(w http.ResponseWriter, _ *http.Request) {
	select {
	case <-c.started:
	default:
		c.logger.Errorf("[Health Check] Readiness failed: %v", errNotStarted)
		w.WriteHeader(http.StatusServiceUnavailable)
		w.Write([]byte(errNotStarted.Error()))
		return
	}

	select {
	case <-c.stopped:
		c.logger.Errorf("[Health Check] Readiness failed: %v", errStopped)
		w.WriteHeader(http.StatusServiceUnavailable)
		w.Write([]byte(errStopped.Error()))
		return
	default:
	}

	if open, maxCount := c.proxy.ConnCount(); maxCount > 0 && open == maxCount {
		err := fmt.Errorf("max connections reached (open = %v, max = %v)", open, maxCount)
		c.logger.Errorf("[Health Check] Readiness failed: %v", err)
		w.WriteHeader(http.StatusServiceUnavailable)
		w.Write([]byte(err.Error()))
		return
	}

	// No error cases apply, 200 status.
	w.WriteHeader(http.StatusOK)
	w.Write([]byte("ok"))
}