mirror of
https://github.com/duanhf2012/origin.git
synced 2026-02-14 07:34:43 +08:00
1.优化网络库
2.rpc协议在宕机时不会导致整个rpc无法响应
This commit is contained in:
@@ -6,7 +6,7 @@ import (
|
||||
"runtime/debug"
|
||||
)
|
||||
|
||||
func F(callback interface{}, args ...interface{}) {
|
||||
func F(callback interface{},recoverNum int, args ...interface{}) {
|
||||
defer func() {
|
||||
if r := recover(); r != nil {
|
||||
var coreInfo string
|
||||
@@ -17,6 +17,11 @@ func F(callback interface{}, args ...interface{}) {
|
||||
} else {
|
||||
fmt.Print(coreInfo)
|
||||
}
|
||||
|
||||
if recoverNum==-1 ||recoverNum-1 >= 0 {
|
||||
recoverNum -= 1
|
||||
go F(callback,recoverNum, args...)
|
||||
}
|
||||
}
|
||||
}()
|
||||
|
||||
@@ -33,5 +38,10 @@ func F(callback interface{}, args ...interface{}) {
|
||||
}
|
||||
|
||||
func Go(callback interface{}, args ...interface{}) {
|
||||
go F(callback, args...)
|
||||
go F(callback,0, args...)
|
||||
}
|
||||
|
||||
//-1表示一直恢复
|
||||
func GoRecover(callback interface{},recoverNum int, args ...interface{}) {
|
||||
go F(callback,recoverNum, args...)
|
||||
}
|
||||
Reference in New Issue
Block a user