视频分析2.0 多进程拆分仓库
zhangmeng
2019-05-06 bef9f96cf21cc9c985f3e47696c4b945b3e97615
decoder test multi proc
1个文件已修改
24 ■■■■■ 已修改文件
decoder/main.go 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
decoder/main.go
@@ -49,7 +49,7 @@
var (
    mapCameraInfo = make(map[string]CameraInfo)
    tcp  = `tcp://192.168.1.124`
    tcp  = `tcp://192.168.1.124:`
    port = 7000
)
@@ -59,18 +59,24 @@
    for {
        msg := ipc.Recv()
        if msg != nil {
            fmt.Println(string(msg))
            var c CameraInfo
            if err := json.Unmarshal(msg, &c); err == nil {
                ch <- c
                fmt.Printf("recv camere info %+v\n", c)
            } else {
                fmt.Println(err)
                if _, ok := mapCameraInfo[c.ID]; ok {
                    continue
            }
                ch <- c
            msgIpc := MsgIPC{"new decoder", port}
            if b, err := json.Marshal(msgIpc); err == nil {
                ipc.Send(b)
            }
            } else {
                fmt.Println(err)
            }
        }
    }
}
@@ -85,9 +91,9 @@
    ctx, cancel := context.WithCancel(context.Background())
    ch := make(chan CameraInfo)
    tcpURL := tcp + strconv.Itoa(port)
    port++
    go recvCameraInfoFromIPC(ctx, tcpURL, ch)
    // tcpURL := tcp + strconv.Itoa(port)
    // port++
    go recvCameraInfoFromIPC(ctx, ipcURL, ch)
    for {
        select {