From af3db30c2391cd8f663e283c02a0143e1a4ff553 Mon Sep 17 00:00:00 2001 From: lwl0608 Date: Thu, 19 Dec 2024 14:59:01 +0800 Subject: [PATCH] app_levi --- library/httpserver/httpserver.go | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/library/httpserver/httpserver.go b/library/httpserver/httpserver.go index e1e7afbc..34ce5951 100644 --- a/library/httpserver/httpserver.go +++ b/library/httpserver/httpserver.go @@ -171,3 +171,31 @@ func StartFirenzeServer(srv *http.Server, cfg *configcenter.DefaultConfig, ip st logger.Info("Server exited") //setServerStatusFD(ServerStatusFDStop) } + +func StartLeviServer(srv *http.Server, ip string, port int) { + go func() { + logger.Info("Start HTTP Server, ip: %v, port: %v", ip, port) + if err := srv.ListenAndServe(); err != nil && err != http.ErrServerClosed { + logger.Fatal("listen: %v", err) + return + } + }() + + quit := make(chan os.Signal, 1) + signal.Notify(quit, syscall.SIGINT, syscall.SIGTERM) + <-quit + logger.Info("Shutdown Server ...") + + ctx, cancel := context.WithTimeout(context.Background(), 1*time.Second) + if err := srv.Shutdown(ctx); err != nil { + logger.Fatal("Server Shutdown:", err) + } + defer cancel() + + select { + case <-ctx.Done(): + logger.Info("timeout of 1 seconds.") + } + + logger.Info("Server exited") +}