panlei
2019-12-16 1a25fb445f732f1969c336017b55aafb9988ce69
main.go
@@ -3,13 +3,16 @@
import (
   "flag"
   "fmt"
   "github.com/spf13/viper"
   "sync"
   "net/http"
   _ "net/http/pprof"
   "plugin"
   //"github.com/spf13/viper"
   logger "github.com/alecthomas/log4go"
   //"basic.com/valib/logger.git"
   "basic.com/valib/logger.git"
   "github.com/panjf2000/ants/v2"
   "basic.com/pubsub/protomsg.git"
@@ -32,18 +35,18 @@
   flag.Parse()
   // 日志初始化
   insertdata.Init(*env)
   //var logFile = "./logger/"
   //if viper.GetString("LogBasePath") != "" {
   //   logFile = viper.GetString("LogBasePath")
   //}
   //logFile = logFile + "ruleprocess.log"
   //fmt.Println("日志地址:",logFile)
   //logger.Config(logFile, logger.DebugLevel)
   //logger.SetSaveDays(7)
   structure.Init(*env)
   var logFile = "./logger/"
   if viper.GetString("LogBasePath") != "" {
      logFile = viper.GetString("LogBasePath")
   }
   logFile = logFile + "ruleprocess.log"
   fmt.Println("日志地址:",logFile)
   logger.Config(logFile, logger.DebugLevel)
   logger.SetSaveDays(7)
   // log4go
   logger.LoadConfiguration("./logger/log.xml")
   logger.Info("日志初始化成功!")
   //logger.LoadConfiguration("./logger/log.xml")
   logger.Info("日志初始化成功!",logFile)
}
func main() {
@@ -63,7 +66,7 @@
   go ruleserver.TimeTicker()
   go ruleserver.StartServer()
   personTrackPush()
   nReciever("ipc:///tmp/sdk-2-rules-process.ipc", deliver.PushPull, 1)
   wg.Wait()
@@ -76,7 +79,7 @@
func nRecvImpl(c deliver.Deliver, index int) {
   var msg []byte
   //var wg1 sync.WaitGroup
   //p,_ := ants.NewPool(100)
   //p,_ := ants.NewPool(20)
   //syncCalculateSum := func() {
   //   Task(msg)
   //   wg1.Done()
@@ -88,7 +91,10 @@
      if err == nil {
         //wg1.Add(1)
         //_ = p.Submit(syncCalculateSum)
         go Task(msg)
         Task(msg)
      } else {
         //fmt.Println(err)
         //logger.Info(err)
      }
   }
}
@@ -120,4 +126,16 @@
   mess := f.(func(msg []byte, args *structure.SdkDatas)(protomsg.SdkMessage))(msg,args)
   return mess
}
// 启动追踪的请求
func personTrackPush(){
   p,err :=  plugin.Open("./algorithm/personTrack.so")
   if err != nil {
      panic(err)
   }
   f,err1 := p.Lookup("Push")
   if err1 != nil {
      panic("初始化人员追踪的推送函数")
   }
   go f.(func()())()
}