fix: 服务监听失败每5秒重试最多10次
This commit is contained in:
@@ -5,6 +5,7 @@ import (
|
|||||||
"net/http"
|
"net/http"
|
||||||
"os"
|
"os"
|
||||||
"sync"
|
"sync"
|
||||||
|
"time"
|
||||||
|
|
||||||
_ "net/http/pprof"
|
_ "net/http/pprof"
|
||||||
|
|
||||||
@@ -34,7 +35,9 @@ import (
|
|||||||
_ "be.ems/swagger2docs"
|
_ "be.ems/swagger2docs"
|
||||||
)
|
)
|
||||||
|
|
||||||
var wg sync.WaitGroup
|
var wg sync.WaitGroup // 等待服务
|
||||||
|
var maxRetries = 10 // 最大重试次数
|
||||||
|
var retryInterval = 5 * time.Second // 重试间隔时间
|
||||||
|
|
||||||
// @title OMC Swagger API
|
// @title OMC Swagger API
|
||||||
// @version 1.0.8
|
// @version 1.0.8
|
||||||
@@ -242,7 +245,13 @@ func loadDev(app *gin.Engine) {
|
|||||||
// 启用pprof HTTP服务
|
// 启用pprof HTTP服务
|
||||||
go func(addr string) {
|
go func(addr string) {
|
||||||
defer wg.Done()
|
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)
|
}(pprofAddr)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -277,8 +286,13 @@ func loadServer(app *gin.Engine) {
|
|||||||
wg.Add(1)
|
wg.Add(1)
|
||||||
go func(addr string, certFile string, keyFile string) {
|
go func(addr string, certFile string, keyFile string) {
|
||||||
defer wg.Done()
|
defer wg.Done()
|
||||||
err := app.RunTLS(addr, certFile, keyFile)
|
for i := range maxRetries {
|
||||||
logger.Errorf("run tls err:%v", err)
|
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)
|
}(addr, certFile, keyFile)
|
||||||
} else {
|
} else {
|
||||||
addr := ""
|
addr := ""
|
||||||
@@ -295,8 +309,13 @@ func loadServer(app *gin.Engine) {
|
|||||||
wg.Add(1)
|
wg.Add(1)
|
||||||
go func(addr string) {
|
go func(addr string) {
|
||||||
defer wg.Done()
|
defer wg.Done()
|
||||||
err := app.Run(addr)
|
for i := range maxRetries {
|
||||||
logger.Errorf("run err:%v", err)
|
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)
|
}(addr)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -334,8 +353,13 @@ func loadWebServer() {
|
|||||||
wg.Add(1)
|
wg.Add(1)
|
||||||
go func(addr string, certFile string, keyFile string) {
|
go func(addr string, certFile string, keyFile string) {
|
||||||
defer wg.Done()
|
defer wg.Done()
|
||||||
err := web.RunTLS(addr, certFile, keyFile)
|
for i := range maxRetries {
|
||||||
logger.Errorf("web run tls err:%v", err)
|
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)
|
}(addr, certFile, keyFile)
|
||||||
} else {
|
} else {
|
||||||
if addr == "" || addr == "<nil>" {
|
if addr == "" || addr == "<nil>" {
|
||||||
@@ -345,8 +369,13 @@ func loadWebServer() {
|
|||||||
wg.Add(1)
|
wg.Add(1)
|
||||||
go func(addr string) {
|
go func(addr string) {
|
||||||
defer wg.Done()
|
defer wg.Done()
|
||||||
err := web.Run(addr)
|
for i := range maxRetries {
|
||||||
logger.Errorf("web run err:%v", err)
|
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)
|
}(addr)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user