package main import ( util "app.yhyue.com/data_processing/common_utils" "app.yhyue.com/data_processing/common_utils/udp" "encoding/json" "flag" "jygit.jydev.jianyu360.cn/data_processing/common_utils/mongodb" "log" "net" "os" "time" ) var startDate, endDate string func main() { ip, start_time, end_time, jy_updatetime, p, tmptime, tmpkey, id1, id2, stype, q, bkey, param, ids, path, start, infoid := "", 0, 0, 0, 0, 0, "", "", "", "", "", "", "", "", "", "", "" flag.StringVar(&startDate, "startDate", "", "开始日期2006-01-02") flag.StringVar(&endDate, "endDate", "", "结束日期2006-01-02") flag.StringVar(&ip, "ip", "127.0.0.1", "ip") flag.IntVar(&p, "p", 6601, "端口") flag.IntVar(&tmptime, "tmptime", 0, "时间查询") flag.IntVar(&start_time, "start_time", 0, "开始时间戳") flag.IntVar(&end_time, "end_time", 0, "结束时间戳") flag.IntVar(&jy_updatetime, "jy_updatetime", 0, "qyxy_change更新数据时间") flag.StringVar(&tmpkey, "tmpkey", "", "时间字段") flag.StringVar(&id1, "gtid", "", "gtid") flag.StringVar(&id2, "lteid", "", "lteid") flag.StringVar(&infoid, "infoid", "", "infoid") flag.StringVar(&path, "path", "", "path") // 指定路径 flag.StringVar(&start, "start", "", "start") // 开始标志 flag.StringVar(&ids, "ids", "", "id1,id2") flag.StringVar(&stype, "stype", "", "stype,传递类型") flag.StringVar(&bkey, "bkey", "", "bkey,加上此参数表示不生关键词和摘要") flag.StringVar(&q, "q", "", "q查询语句\"{'':''}\",有q就不要gtid,lteid") flag.StringVar(¶m, "param", "", "param,生信息发布或其他索引时用双引号套单引号\"{'mgoaddr':'','d':'','c':'','index':'','type':''}\"") flag.Parse() //if startDate != "" || endDate != "" { // start, _ := time.ParseInLocation(qutil.Date_Short_Layout, startDate, time.Local) // end, _ := time.ParseInLocation(qutil.Date_Short_Layout, endDate, time.Local) // id1 = qutil.BsonIdToSId(bson.NewObjectIdWithTime(start)) // id2 = qutil.BsonIdToSId(bson.NewObjectIdWithTime(end)) log.Println(id1, id2, tmptime) //} if ip != "" && p > 0 { toadd := &net.UDPAddr{ IP: net.ParseIP(ip), Port: p, } UdpClient := udp.UdpClient{Local: ":50010", BufSize: 1024} UdpClient.Listen(func(b byte, data []byte, add *net.UDPAddr) { switch b { case udp.OP_NOOP: log.Println(string(data)) os.Exit(0) } }) m1 := map[string]interface{}{} if stype != "" { m1["stype"] = stype } if id1 != "" { m1["gtid"] = id1 } if id2 != "" { m1["lteid"] = id2 } if infoid != "" { m1["infoid"] = infoid } if path != "" { m1["path"] = path } if start != "" { m1["start"] = start } // 针对qyxy_es 企业数据,传递时间戳 if start_time > 0 { m1["start_time"] = start_time } if jy_updatetime > 0 { m1["jy_updatetime"] = jy_updatetime } if end_time > 0 { m1["end_time"] = end_time } if bkey != "" { m1["bkey"] = bkey } if ids != "" { m1["ids"] = ids } if q != "" { m1["query"] = mongodb.ObjToMQ(q, true) //qutil.ObjToMap(q) } if tmptime > 0 && tmpkey != "" { m1["query"] = map[string]interface{}{tmpkey: map[string]interface{}{"$gte": tmptime}} } if param != "" { pm := util.ObjToMap(param) for k, v := range *pm { m1[k] = v } } by, _ := json.Marshal(m1) UdpClient.WriteUdp(by, udp.OP_TYPE_DATA, toadd) time.Sleep(30 * time.Second) } else { flag.PrintDefaults() log.Println("参数错误.") } }