main.go 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. package main
  2. import (
  3. "math/rand"
  4. "runtime"
  5. "time"
  6. "github.com/sirupsen/logrus"
  7. "lc/common/util"
  8. )
  9. //这个网页是新建的, 建好之后,有4点需要处理:admin 168
  10. // 1. 网关build的目录下有对应的index.html,
  11. // 2. 设制网关外网地址(如: http://192.168.0.63:9180/index.html)
  12. // 3. 新建的vsn文件重新发布;
  13. // 4. 节目管理中排优先播放
  14. //不是很确定,主要是云端这个以前设置的,而现在又没有这样的接口,可以先将云端的svn修改一下名称,再刚才的本地工具删除云端的节目再次发布一下本地的试试看
  15. var IDGen util.IdWorker
  16. var gopool *util.Pool
  17. var version string = "1.1.0"
  18. var appname string = "its"
  19. func GetNextUint64() uint64 {
  20. u64, err := IDGen.NextId()
  21. if err != nil {
  22. logrus.Errorf("IDGen.NextId发生错误:%s", err.Error())
  23. u64 = util.MlNow().Unix()
  24. }
  25. return uint64(u64)
  26. }
  27. //cgo学习资料:https://www.cnblogs.com/binHome/p/12984064.html
  28. func main() {
  29. defer uninit()
  30. runtime.GOMAXPROCS(runtime.NumCPU() * 2)
  31. util.InitLogrus("release")
  32. logrus.Infof("当前程序版本:%s", appname+" "+version)
  33. if sdkver, err := GetSDKVersion(); err == nil {
  34. logrus.Infof("sdk版本:%s", sdkver)
  35. }
  36. IDGen.InitIdWorker(1000, 1)
  37. if err := loadAppConfig(); err != nil {
  38. logrus.Errorf("加载app.json失败:%s", err.Error())
  39. return
  40. }
  41. if err := LoadITSDevConfig(); err != nil {
  42. logrus.Errorf("加载its.json失败:%s", err.Error())
  43. return
  44. }
  45. GetMQTTMgr()
  46. GetWebSvr().MQTTSubscribe()
  47. GetITSDeviceMgr().LoadITSDevice()
  48. rand.Seed(time.Now().UnixNano())
  49. gopool = util.NewPool(10)
  50. gopool.Add(GetMQTTMgr().MQTTMessageHandle, 1)
  51. gopool.Add(GetITSDeviceMgr().Handle, 2)
  52. gopool.Add(GetWebSvr().StartSvr, 3)
  53. gopool.Add(GetWebSvr().Handle, 4)
  54. gopool.Add(GetMQTTMgr().MQTTConnectMgr, 5)
  55. gopool.Run()
  56. gopool.Wait()
  57. }