123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 |
- package main
- import (
- "encoding/json"
- "log"
- mu "mfw/util"
- mgoutil "mongodb"
- "net"
- "qfw/util"
- es "qfw/util/elastic"
- "github.com/donnie4w/go-logger/logger"
- )
- var (
- Sysconfig map[string]interface{}
- Es *es.Elastic
- Index string
- Itype string
- MongoTool *mgoutil.MongodbSim
- Dbname string
- CollPro string //项目表
- MixMgo *mgoutil.MongodbSim
- CollTag string //标签表
- CollSave string
- CollEnt string
- Rate string
- Forecast map[string][]string
- Category []string
- NatureMap map[string]bool
- ProjectTypeMap map[string]bool
- udpclient mu.UdpClient
- )
- var MgoSaveCache = make(chan map[string]interface{}, 2000)
- var SP = make(chan bool, 5)
- func init() {
- util.ReadConfig(&Sysconfig)
- //mgo
- Dbname = Sysconfig["dbname"].(string)
- CollPro = Sysconfig["dbcoll"].(string)
- MongoTool = &mgoutil.MongodbSim{
- MongodbAddr: Sysconfig["mgodb"].(string),
- Size: util.IntAll(Sysconfig["dbsize"]),
- DbName: Dbname,
- UserName: util.ObjToString(Sysconfig["username"]),
- Password: util.ObjToString(Sysconfig["password"]),
- }
- MongoTool.InitPool()
- //mixdata
- mixConfig := Sysconfig["mixdata"].(map[string]interface{})
- CollTag = mixConfig["tagcoll"].(string)
- CollSave = mixConfig["savecoll"].(string)
- CollEnt = mixConfig["buyer_ent"].(string)
- MixMgo = &mgoutil.MongodbSim{
- MongodbAddr: mixConfig["addr"].(string),
- Size: util.IntAll(mixConfig["size"]),
- DbName: mixConfig["db"].(string),
- UserName: util.ObjToString(Sysconfig["username"]),
- Password: util.ObjToString(Sysconfig["password"]),
- }
- MixMgo.InitPool()
- //es
- econf := Sysconfig["elastic"].(map[string]interface{})
- Es = &es.Elastic{
- S_esurl: econf["addr"].(string),
- I_size: util.IntAllDef(econf["pool"], 12),
- }
- Es.InitElasticSize()
- Index = econf["index"].(string)
- Itype = econf["itype"].(string)
- //other
- Rate = util.ObjToString(Sysconfig["rate"])
- Forecast = make(map[string][]string)
- ForecastTmp := Sysconfig["forecast"].(map[string]interface{})
- for k, v := range ForecastTmp {
- Forecast[k] = util.ObjArrToStringArr(v.([]interface{}))
- }
- log.Println("Forecast", Forecast)
- // Forecast2 = make(map[string][]interface{})
- // Forecast2Tmp := Sysconfig["forecast2"].(map[string]interface{})
- // for k, v := range Forecast2Tmp {
- // tmp := v.([]interface{})
- // Forecast2[k] = tmp
- // }
- // log.Println("Forecast2", Forecast2)
- NatureMap = make(map[string]bool)
- for _, nature := range util.ObjArrToStringArr(Sysconfig["nature"].([]interface{})) {
- NatureMap[nature] = true
- }
- log.Println("NatureMap:", NatureMap)
- ProjectTypeMap = make(map[string]bool)
- for _, projecttype := range util.ObjArrToStringArr(Sysconfig["projecttype"].([]interface{})) {
- ProjectTypeMap[projecttype] = true
- }
- log.Println("ProjectTypeMap:", ProjectTypeMap)
- //udp
- udpport, _ := Sysconfig["udpport"].(string)
- udpclient = mu.UdpClient{Local: udpport, BufSize: 1024}
- udpclient.Listen(processUdpMsg)
- log.Println("Udp服务监听", udpport)
- logger.SetRollingDaily("./logs", "projectinfo.log")
- go SaveMgo()
- }
- func main() {
- //GetProjectData("5e718afd50b5ea296ee1477e", "5e718afd50b5ea296ee1477f") //手动任务
- ch := make(chan bool, 1)
- <-ch
- }
- //udp调用信号
- func processUdpMsg(act byte, data []byte, ra *net.UDPAddr) {
- var mapInfo map[string]interface{}
- err := json.Unmarshal(data, &mapInfo)
- util.Debug("err:", err, "mapInfo:", mapInfo)
- if err != nil {
- logger.Debug("udp error mapInfo:", mapInfo)
- //_ = udpclient.WriteUdp([]byte("err:"+err.Error()), mu.OP_NOOP, ra)
- } else if mapInfo != nil {
- gtid := util.ObjToString(mapInfo["gtid"])
- lteid := util.ObjToString(mapInfo["lteid"])
- if gtid == "" || lteid == "" {
- logger.Debug("udp id err mapInfo:", mapInfo)
- } else {
- GetProjectData(gtid, lteid)
- }
- }
- }
|