main.go 1.9 KB

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