zhangmeng
2019-08-29 a735e666cff14e4e485110d2a59d401b4be61b9b
add recover
5个文件已修改
57 ■■■■■ 已修改文件
camera/camera.go 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
go.mod 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
go.sum 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
sdk/sdk.go 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
util/util.go 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
camera/camera.go
@@ -124,6 +124,8 @@
func Recv(socket util.SocketContext) {
    tryCount := 0
    var recvmessage []byte
    var imagemsg protomsg.Image
    var err error
@@ -135,6 +137,17 @@
        default:
            if recvmessage, err = socket.Sock.Recv(); err != nil {
                //logger.Error("[camera] err is: ", err)
                if socket.UseSHM {
                    if tryCount > util.SHMMaxTryCount {
                        socket, err = util.NewSocketListen(socket.Mode, socket.URL, socket.UseSHM)
                        fmt.Println("CAMERA SHM TRY :", tryCount, " RESTART IT")
                        tryCount = 0
                        continue
                    }
                    tryCount++
                }
                continue
            }
go.mod
@@ -7,7 +7,7 @@
    basic.com/pubsub/protomsg.git v0.0.0-20190709070734-b34c868adcc2
    basic.com/valib/deliver.git v0.0.0-20190827070620-058b21100da6
    basic.com/valib/gopherdiscovery.git v0.0.0-20190605034340-15d89d8b4e28
    basic.com/valib/shm.git v0.0.0-20190826090635-7db9aba5ca93 // indirect
    basic.com/valib/shm.git v0.0.0-20190829074754-ad2e00879627 // indirect
    github.com/ajg/form v1.5.1 // indirect
    github.com/gogo/protobuf v1.2.1
    github.com/golang/protobuf v1.3.1
go.sum
@@ -18,8 +18,8 @@
basic.com/valib/deliver.git v0.0.0-20190827070620-058b21100da6/go.mod h1:bkYiTUGzckyNOjAgn9rB/DOjFzwoSHJlruuWQ6hu6IY=
basic.com/valib/gopherdiscovery.git v0.0.0-20190605034340-15d89d8b4e28 h1:3hejanzPEBvZSSvjIqayB83/6/6SLLrX9oNZAdiYELg=
basic.com/valib/gopherdiscovery.git v0.0.0-20190605034340-15d89d8b4e28/go.mod h1:CQ+UJyZV8MRzwwckncdUDu6/RDTKAzSIPCxc9tFcwPs=
basic.com/valib/shm.git v0.0.0-20190826090635-7db9aba5ca93 h1:KawyUKwFGIQIv043VGV1QvXOiU8aq7DEyB3QhAq+Syc=
basic.com/valib/shm.git v0.0.0-20190826090635-7db9aba5ca93/go.mod h1:yYRM7bM9y0KKd4IfNt3myjsvkFVFIIWNjsvK14tNbq4=
basic.com/valib/shm.git v0.0.0-20190829074754-ad2e00879627 h1:y0t0XG2uPSygF+hiSdLP3Lr959tip/FDPYJpHhbKRec=
basic.com/valib/shm.git v0.0.0-20190829074754-ad2e00879627/go.mod h1:yYRM7bM9y0KKd4IfNt3myjsvkFVFIIWNjsvK14tNbq4=
github.com/ajg/form v1.5.1 h1:t9c7v8JUKu/XxOGBU0yjNpaMloxGEJhUkqFRq0ibGeU=
github.com/ajg/form v1.5.1/go.mod h1:uL1WgH+h2mgNtvBq0339dVnzXdBETtL2LeUXaIv25UY=
github.com/gogo/protobuf v1.2.1 h1:/s5zKNz0uPFCZ5hddgPdo2TK2TVrUNMn0OOX8/aZMTE=
sdk/sdk.go
@@ -206,6 +206,9 @@
}
func Recv(socket util.SocketContext) {
    tryCount := 0
    var repsdkmsg = protomsg.SdkMessage{}
    for {
        select {
@@ -214,6 +217,17 @@
            return
        default:
            if msg, err := socket.Sock.Recv(); err != nil {
                if socket.UseSHM {
                    if tryCount > util.SHMMaxTryCount {
                        socket, err = util.NewSocketListen(socket.Mode, socket.URL, socket.UseSHM)
                        fmt.Println("SDK RECV SHM TRY :", tryCount, " RESTART IT")
                        tryCount = 0
                        continue
                    }
                    tryCount++
                }
                continue
            } else {
                err = proto.Unmarshal(msg, &repsdkmsg)
@@ -232,6 +246,8 @@
func Send(sdkid string, socket util.SocketContext, in chan protomsg.SdkMessage) {
    tryCount := 0
    for {
        select {
        case <-socket.Context.Done():
@@ -247,6 +263,18 @@
                if err := socket.Sock.Send(data); err != nil {
                    logger.Error("failed send:sdkid=", sdkid)
                    if socket.UseSHM {
                        if tryCount > util.SHMMaxTryCount {
                            socket, err = util.NewSocketListen(socket.Mode, socket.URL, socket.UseSHM)
                            fmt.Println("SDK SEND SHM TRY :", util.SHMMaxTryCount, " RESTART IT")
                            tryCount = 0
                            continue
                        }
                        tryCount++
                    }
                    continue
                }
                logger.Debug(sdkid, " send success: ", len(data))
util/util.go
@@ -11,10 +11,16 @@
    "taskpubsub/logger"
)
const SHMMaxTryCount = 3
type SocketContext struct {
    Sock    deliver.Deliver
    Context context.Context
    Cancel  context.CancelFunc
    Mode   int
    URL    string
    UseSHM bool
}
//  1. oldstring element is not in new  : abandon(delete)
@@ -89,6 +95,10 @@
    socket.Context = ctx
    socket.Cancel = cancel
    socket.Mode = mode
    socket.URL = url
    socket.UseSHM = shm
    if shm {
        var err error
        socket.Sock, err = deliver.NewServerWithError(deliver.Mode(mode), url)