视频分析2.0 多进程拆分仓库
zhangmeng
2019-05-07 f963cd025c1aa88ac8b211e24f46ceb0eb64c418
decoder/main.go
@@ -49,8 +49,8 @@
var (
   mapCameraInfo = make(map[string]CameraInfo)
   tcp  = `tcp://192.168.1.124`
   port = 7000
   tcp  = `tcp://192.168.1.124:`
   port = 7001
)
func recvCameraInfoFromIPC(ctx context.Context, url string, ch chan<- CameraInfo) {
@@ -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 {
            if _, ok := mapCameraInfo[c.ID]; ok {
               continue
            }
            ch <- c
            fmt.Printf("recv camere info %+v\n", c)
            msgIpc := MsgIPC{"new decoder", port}
            if b, err := json.Marshal(msgIpc); err == nil {
               ipc.Send(b)
            }
         } else {
            fmt.Println(err)
         }
         msgIpc := MsgIPC{"new decoder", port}
         if b, err := json.Marshal(msgIpc); err == nil {
            ipc.Send(b)
         }
      }
   }
}
@@ -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 {
@@ -98,7 +104,6 @@
            mapCameraInfo[c.ID] = c
            ipcAddr := tcp + strconv.Itoa(port)
            port++
            fmt.Printf("create ipc %s for decode : %s, on camera id %s\n", ipcAddr, c.URL, c.ID)
            url := strings.TrimSpace(c.URL)
            id := strings.TrimSpace(c.ID)
@@ -117,6 +122,7 @@
   }
   d.RunAsClient()
}
func test() {
   fmt.Println("start test")