From 90e06af7f459e72f13b91b65674aec92c182d771 Mon Sep 17 00:00:00 2001 From: TsMask <340112800@qq.com> Date: Thu, 31 Jul 2025 16:47:54 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=9C=8D=E5=8A=A1=E7=9B=91=E5=90=AC?= =?UTF-8?q?=E5=A4=B1=E8=B4=A5=E6=AF=8F5=E7=A7=92=E9=87=8D=E8=AF=95?= =?UTF-8?q?=E6=9C=80=E5=A4=9A10=E6=AC=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.go | 49 +++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 39 insertions(+), 10 deletions(-) diff --git a/main.go b/main.go index 1a632049..f1c03e66 100644 --- a/main.go +++ b/main.go @@ -4,6 +4,7 @@ import ( "fmt" "net/http" "sync" + "time" _ "net/http/pprof" @@ -29,7 +30,9 @@ import ( _ "be.ems/swagger_docs" ) -var wg sync.WaitGroup +var wg sync.WaitGroup // 等待服务 +var maxRetries = 10 // 最大重试次数 +var retryInterval = 5 * time.Second // 重试间隔时间 // @title OMC Swagger API // @version 1.0.8 @@ -217,7 +220,13 @@ func loadGlobalPre(app *gin.Engine) { wg.Add(1) go func(addr string) { defer wg.Done() - fmt.Println(http.ListenAndServe(addr, nil)) + for i := range maxRetries { + if err := http.ListenAndServe(addr, nil); err != nil { + logger.Errorf("pprof run err:%v", err) + time.Sleep(retryInterval) // 重试间隔时间 + logger.Warnf("trying to restart HTTP server on %s (Attempt %d)", addr, i) + } + } }(pprofAddr) } } @@ -252,8 +261,13 @@ func loadServer(app *gin.Engine) { wg.Add(1) go func(addr string, certFile string, keyFile string) { defer wg.Done() - err := app.RunTLS(addr, certFile, keyFile) - logger.Errorf("run tls err:%v", err) + for i := range maxRetries { + if err := app.RunTLS(addr, certFile, keyFile); err != nil { + logger.Errorf("routeServer run tls err:%v", err) + time.Sleep(retryInterval) // 重试间隔时间 + logger.Warnf("trying to restart HTTPS server on %s (Attempt %d)", addr, i) + } + } }(addr, certFile, keyFile) } else { addr := "" @@ -270,8 +284,13 @@ func loadServer(app *gin.Engine) { wg.Add(1) go func(addr string) { defer wg.Done() - err := app.Run(addr) - logger.Errorf("run err:%v", err) + for i := range maxRetries { + if err := app.Run(addr); err != nil { + logger.Errorf("routeServer run err:%v", err) + time.Sleep(retryInterval) // 重试间隔时间 + logger.Warnf("trying to restart HTTP server on %s (Attempt %d)", addr, i) + } + } }(addr) } } @@ -309,8 +328,13 @@ func loadServerWeb() { wg.Add(1) go func(addr string, certFile string, keyFile string) { defer wg.Done() - err := web.RunTLS(addr, certFile, keyFile) - logger.Errorf("web run tls err:%v", err) + for i := range maxRetries { + if err := web.RunTLS(addr, certFile, keyFile); err != nil { + logger.Errorf("webServer run tls err:%v", err) + time.Sleep(retryInterval) // 重试间隔时间 + logger.Warnf("trying to restart HTTPS server on %s (Attempt %d)", addr, i) + } + } }(addr, certFile, keyFile) } else { if addr == "" || addr == "" { @@ -320,8 +344,13 @@ func loadServerWeb() { wg.Add(1) go func(addr string) { defer wg.Done() - err := web.Run(addr) - logger.Errorf("web run err:%v", err) + for i := range maxRetries { + if err := web.Run(addr); err != nil { + logger.Errorf("webServer run err:%v", err) + time.Sleep(retryInterval) // 重试间隔时间 + logger.Warnf("trying to restart HTTP server on %s (Attempt %d)", addr, i) + } + } }(addr) } }