v1.5.1 增强程序稳定性
This commit is contained in:
@@ -2,6 +2,7 @@ package nodes
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"log"
|
||||
"net"
|
||||
"os"
|
||||
@@ -46,7 +47,14 @@ func (n *HTTPDNSNode) Run() {
|
||||
return
|
||||
}
|
||||
|
||||
go n.start()
|
||||
go func() {
|
||||
defer func() {
|
||||
if r := recover(); r != nil {
|
||||
log.Println(fmt.Sprintf("[HTTPDNS_NODE]goroutine panic: %v", r))
|
||||
}
|
||||
}()
|
||||
n.start()
|
||||
}()
|
||||
select {}
|
||||
}
|
||||
|
||||
@@ -108,6 +116,12 @@ func (n *HTTPDNSNode) listenSock() error {
|
||||
}
|
||||
|
||||
go func() {
|
||||
defer func() {
|
||||
if r := recover(); r != nil {
|
||||
log.Println(fmt.Sprintf("[HTTPDNS_NODE]sock goroutine panic: %v", r))
|
||||
}
|
||||
}()
|
||||
|
||||
n.sock.OnCommand(func(cmd *gosock.Command) {
|
||||
switch cmd.Code {
|
||||
case "pid":
|
||||
@@ -152,12 +166,47 @@ func (n *HTTPDNSNode) start() {
|
||||
taskManager := NewTaskManager(n.quitCh, snapshotManager)
|
||||
resolveServer := NewResolveServer(n.quitCh, snapshotManager)
|
||||
|
||||
go snapshotManager.Start()
|
||||
go statusManager.Start()
|
||||
go taskManager.Start()
|
||||
go resolveServer.Start()
|
||||
go func() {
|
||||
defer func() {
|
||||
if r := recover(); r != nil {
|
||||
log.Println(fmt.Sprintf("[HTTPDNS_NODE]snapshot goroutine panic: %v", r))
|
||||
}
|
||||
}()
|
||||
snapshotManager.Start()
|
||||
}()
|
||||
go func() {
|
||||
defer func() {
|
||||
if r := recover(); r != nil {
|
||||
log.Println(fmt.Sprintf("[HTTPDNS_NODE]status goroutine panic: %v", r))
|
||||
}
|
||||
}()
|
||||
statusManager.Start()
|
||||
}()
|
||||
go func() {
|
||||
defer func() {
|
||||
if r := recover(); r != nil {
|
||||
log.Println(fmt.Sprintf("[HTTPDNS_NODE]task goroutine panic: %v", r))
|
||||
}
|
||||
}()
|
||||
taskManager.Start()
|
||||
}()
|
||||
go func() {
|
||||
defer func() {
|
||||
if r := recover(); r != nil {
|
||||
log.Println(fmt.Sprintf("[HTTPDNS_NODE]resolve goroutine panic: %v", r))
|
||||
}
|
||||
}()
|
||||
resolveServer.Start()
|
||||
}()
|
||||
|
||||
go NewUpgradeManager().Loop()
|
||||
go func() {
|
||||
defer func() {
|
||||
if r := recover(); r != nil {
|
||||
log.Println(fmt.Sprintf("[HTTPDNS_NODE]upgrade goroutine panic: %v", r))
|
||||
}
|
||||
}()
|
||||
NewUpgradeManager().Loop()
|
||||
}()
|
||||
}
|
||||
|
||||
func (n *HTTPDNSNode) stop() {
|
||||
|
||||
Reference in New Issue
Block a user