main.go 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. package main
  2. import (
  3. "runtime"
  4. "github.com/sirupsen/logrus"
  5. "lc/common/util"
  6. )
  7. var IDGen util.IdWorker
  8. var gopool *util.Pool
  9. var version = "1.0.12"
  10. var appname = "its"
  11. func GetNextUint64() uint64 {
  12. u64, err := IDGen.NextId()
  13. if err != nil {
  14. logrus.Errorf("IDGen.NextId发生错误:%s", err.Error())
  15. u64 = util.MlNow().Unix()
  16. }
  17. return uint64(u64)
  18. }
  19. //cgo学习资料:https://www.cnblogs.com/binHome/p/12984064.html
  20. func main() {
  21. runtime.GOMAXPROCS(runtime.NumCPU() * 2)
  22. util.InitLogrus("release")
  23. logrus.Infof("当前程序版本:%s", appname+" "+version)
  24. IDGen.InitIdWorker(1000, 1)
  25. if err := loadAppConfig(); err != nil {
  26. logrus.Errorf("加载app.json失败:%s", err.Error())
  27. return
  28. }
  29. if err := LoadITSDevConfig(); err != nil {
  30. logrus.Errorf("加载its.json失败:%s", err.Error())
  31. return
  32. }
  33. GetMQTTMgr()
  34. GetWebSvr().MQTTSubscribe()
  35. gopool = util.NewPool(10)
  36. gopool.Add(GetMQTTMgr().MQTTMessageHandle, 1)
  37. gopool.Add(GetWebSvr().StartSvr, 3)
  38. gopool.Add(GetWebSvr().Handle, 4)
  39. gopool.Add(GetMQTTMgr().MQTTConnectMgr, 5)
  40. gopool.Run()
  41. gopool.Wait()
  42. }