main.go 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. package main
  2. import (
  3. "github.com/sirupsen/logrus"
  4. "net/http"
  5. _ "net/http/pprof"
  6. "os"
  7. "path/filepath"
  8. "runtime"
  9. "lc/common/models"
  10. "lc/common/util"
  11. "os/signal"
  12. "syscall"
  13. )
  14. var MySQLConfig util.MySQLConfig
  15. var RedisConfig util.RedisConfig
  16. var MQTTConfig util.MQTTConfig
  17. var MqttconfigHl util.MQTTConfig //海蓝
  18. var mainConfig MainConfig
  19. var gopool *util.Pool
  20. var IDGen util.IdWorker
  21. func GetNextSeq() uint64 {
  22. u64, err := IDGen.NextId()
  23. if err != nil {
  24. logrus.Errorf("IDGen.NextId发生错误:%s", err.Error())
  25. u64 = util.MlNow().Unix()
  26. }
  27. return uint64(u64)
  28. }
  29. func InitMysql(conf *util.MySQLConfig) {
  30. models.InitDB(conf)
  31. }
  32. func DestroyMysql() {
  33. models.DestroyDB()
  34. }
  35. func ReadConfig() bool {
  36. dir, _ := os.Getwd() //filepath.Abs(filepath.Dir(os.Args[0]))
  37. fPath := dir + string(filepath.Separator) + "conf" + string(filepath.Separator)
  38. errA := RedisConfig.ReadConfig(fPath, "redis")
  39. errB := MySQLConfig.ReadConfig(fPath, "mysql")
  40. errC := MQTTConfig.ReadConfig(fPath, "broker")
  41. errD := mainConfig.ReadConfig(fPath, "ipolesvr")
  42. _ = MqttconfigHl.ReadConfig(fPath, "broker_highland")
  43. return errA && errB && errC && errD //&& err_e
  44. }
  45. func main() {
  46. signal.Ignore(syscall.SIGHUP)
  47. runtime.GOMAXPROCS(runtime.NumCPU())
  48. util.InitLogrus("release")
  49. err := IDGen.InitIdWorker(1000, 2)
  50. if err != nil {
  51. return
  52. }
  53. go func() {
  54. logrus.Infoln(http.ListenAndServe(":8197", nil))
  55. }()
  56. if !ReadConfig() {
  57. panic(nil)
  58. }
  59. GetMQTTMgr()
  60. GetHlMqttMgr() //hl
  61. InitMysql(&MySQLConfig)
  62. defer DestroyMysql()
  63. InitRedis(&RedisConfig)
  64. defer DestroyRedis()
  65. GetGwHandler().SubscribeTopics()
  66. GetModbusDeviceHandler().SubscribeTopics()
  67. GetChzbConcentratorMgr().SubscribeTopics()
  68. GetHlZigbeeConcentratorMgr().SubscribeTopics()
  69. GetSosMgr().SubscribeTopics()
  70. GetIPCMgr().SubscribeTopics()
  71. GetCltLedMgr().SubscribeTopics()
  72. GetYMLampControllerMgr().SubscribeTopics()
  73. GetItsMgr().SubscribeTopics()
  74. GetRadarHandler().SubscribeTopics()
  75. GetCableGuardianHandler().SubscribeTopics()
  76. calcTask()
  77. gopool = util.NewPool(20)
  78. gopool.Add(StatData, 1)
  79. gopool.Add(GetGwHandler().Handler, 2) //网关
  80. gopool.Add(GetModbusDeviceHandler().Handler, 3) //环境 水位
  81. gopool.Add(GetHlZigbeeConcentratorMgr().Handler, 4) //海蓝
  82. gopool.Add(GetChzbConcentratorMgr().Handler, 5)
  83. gopool.Add(GetLampStrategyMgr().Handler, 6)
  84. gopool.Add(GetSosMgr().Handler, 7)
  85. gopool.Add(GetIPCMgr().Handler, 8)
  86. gopool.Add(GetSrsMgr().Handler, 9)
  87. gopool.Add(GetEventMgr().Handler, 10)
  88. gopool.Add(GetCltLedMgr().Handler, 11)
  89. gopool.Add(GetYMLampControllerMgr().Handler, 12)
  90. gopool.Add(GetSrsMgr().StartWeb, 13)
  91. gopool.Add(GetItsMgr().Handler, 14)
  92. gopool.Add(GetBizAlarmMgr().Handler, 15)
  93. gopool.Add(GetRadarHandler().Handler, 16)
  94. gopool.Add(GetCableGuardianHandler().Handler, 17)
  95. gopool.Run()
  96. gopool.Wait()
  97. }