diff --git a/template/golang-middleware/main.go b/template/golang-middleware/main.go index 1d49220..6f4e594 100644 --- a/template/golang-middleware/main.go +++ b/template/golang-middleware/main.go @@ -24,6 +24,7 @@ const defaultTimeout = 10 * time.Second func main() { readTimeout := parseIntOrDurationValue(os.Getenv("read_timeout"), defaultTimeout) writeTimeout := parseIntOrDurationValue(os.Getenv("write_timeout"), defaultTimeout) + healthInterval := parseIntOrDurationValue(os.Getenv("healthcheck_interval"), writeTimeout) s := &http.Server{ Addr: fmt.Sprintf(":%d", 8082), @@ -34,7 +35,7 @@ func main() { http.HandleFunc("/", function.Handle) - listenUntilShutdown(s, writeTimeout) + listenUntilShutdown(s, healthInterval) } func listenUntilShutdown(s *http.Server, shutdownTimeout time.Duration) { @@ -45,17 +46,14 @@ func listenUntilShutdown(s *http.Server, shutdownTimeout time.Duration) { <-sig - log.Printf("[entrypoint] SIGTERM received.. shutting down server in %s\n", shutdownTimeout.String()) - + log.Printf("[entrypoint] SIGTERM: no connections in: %s", shutdownTimeout.String()) <-time.Tick(shutdownTimeout) if err := s.Shutdown(context.Background()); err != nil { log.Printf("[entrypoint] Error in Shutdown: %v", err) } - log.Printf("[entrypoint] No new connections allowed. Exiting in: %s\n", shutdownTimeout.String()) - - <-time.Tick(shutdownTimeout) + log.Printf("[entrypoint] Exiting") close(idleConnsClosed) }()