package main import ( "runtime" "github.com/sirupsen/logrus" "lc/common/util" ) var IDGen util.IdWorker var gopool *util.Pool var version = "1.0.12" var appname = "its" func GetNextUint64() uint64 { u64, err := IDGen.NextId() if err != nil { logrus.Errorf("IDGen.NextId发生错误:%s", err.Error()) u64 = util.MlNow().Unix() } return uint64(u64) } //cgo学习资料:https://www.cnblogs.com/binHome/p/12984064.html func main() { runtime.GOMAXPROCS(runtime.NumCPU() * 2) util.InitLogrus("release") logrus.Infof("当前程序版本:%s", appname+" "+version) IDGen.InitIdWorker(1000, 1) if err := loadAppConfig(); err != nil { logrus.Errorf("加载app.json失败:%s", err.Error()) return } if err := LoadITSDevConfig(); err != nil { logrus.Errorf("加载its.json失败:%s", err.Error()) return } GetMQTTMgr() GetWebSvr().MQTTSubscribe() gopool = util.NewPool(10) gopool.Add(GetMQTTMgr().MQTTMessageHandle, 1) gopool.Add(GetWebSvr().StartSvr, 3) gopool.Add(GetWebSvr().Handle, 4) gopool.Add(GetMQTTMgr().MQTTConnectMgr, 5) gopool.Run() gopool.Wait() }