package main import ( "encoding/json" mu "mfw/util" "mongodb" "net" "qfw/util" ) var ( Sysconfig map[string]interface{} MongoTool *mongodb.MongodbSim Dbname string CollPro string //项目表 CollTag string //标签表 CollSave string CollEnt string Rate string Forecast map[string]interface{} Category []interface{} Nature []interface{} SpiderCodes []interface{} udpclient mu.UdpClient ) var MgoSaveCache = make(chan map[string]interface{}, 2000) var SP = make(chan bool, 5) func init() { util.ReadConfig(&Sysconfig) Dbname = Sysconfig["mongodbName"].(string) MongoTool = &mongodb.MongodbSim{ MongodbAddr: Sysconfig["mongodbServers"].(string), Size: util.IntAll(Sysconfig["mongodbPoolSize"]), DbName: Dbname, } MongoTool.InitPool() CollPro = Sysconfig["mongoColl_pro"].(string) CollTag = Sysconfig["mongoColl_tag"].(string) CollSave = Sysconfig["mongoColl_save"].(string) CollEnt = Sysconfig["mongoColl_ent"].(string) Rate = util.ObjToString(Sysconfig["rate"]) Forecast = Sysconfig["forecast"].(map[string]interface{}) Category = Sysconfig["category"].([]interface{}) Nature = Sysconfig["nature"].([]interface{}) SpiderCodes = Sysconfig["spiderCodes"].([]interface{}) udpport, _ := Sysconfig["udpport"].(string) udpclient = mu.UdpClient{Local: udpport, BufSize: 1024} udpclient.Listen(processUdpMsg) util.Debug("Udp服务监听", udpport) } func main() { go SaveMgo() GetProjectData("1567295000") ch := make(chan bool, 1) <-ch } //udp调用信号 func processUdpMsg(act byte, data []byte, ra *net.UDPAddr) { util.Debug(act) var mapInfo map[string]interface{} err := json.Unmarshal(data, &mapInfo) util.Debug("err:", err, "mapInfo:", mapInfo) if err != nil { _ = udpclient.WriteUdp([]byte("err:"+err.Error()), mu.OP_NOOP, ra) } else if mapInfo != nil { GetProjectData(util.ObjToString(mapInfo["updatetime"])) } }