123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- package main
- import (
- "encoding/json"
- "flag"
- "log"
- mu "mfw/util"
- "net"
- qu "qfw/util"
- "time"
- "gopkg.in/mgo.v2/bson"
- )
- var udpclient mu.UdpClient //udp对象
- var nextNodes []map[string]interface{}
- var startDate, endDate, ip, port, stype, sid, eid string
- func main() {
- //2015-11-03,2017-04-01
- //2017-04-01,2017-06-01
- //2017-06-01,2018-06-01
- //2018-06-01,2019-02-20
- /*
- 5da3f2c5a5cb26b9b79847fc
- 5db2735ba5cb26b9b7c99c6f 76万
- */
- /*
- 9W
- 5d767728a5cb26b9b7748868
- ObjectId("5d77c881a5cb26b9b7de209d")
- ObjectId("5da3f2c5a5cb26b9b79847fc")
- ObjectId("5db2735ba5cb26b9b7c99c6f")
- //历史中间一段数据
- ObjectId("5d771e90a5cb26b9b7be7976")
- ObjectId("5d775be4a5cb26b9b759b5eb")
- ObjectId("5dfc98f5e9d1f601e46f047c")
- ObjectId("5a4ad8f240d2d9bbe8adfbda")
- ObjectId("5e0bf92b0cf41612e063cc28")
- */
- flag.StringVar(&sid, "sid", "", "开始id")
- flag.StringVar(&eid, "eid", "", "结束id")
- flag.StringVar(&startDate, "start", "", "开始日期2006-01-02")
- flag.StringVar(&endDate, "end", "", "结束日期2006-01-02")
- flag.StringVar(&ip, "ip", "127.0.0.1", "ip")
- flag.StringVar(&port, "port", "1485", "dup端口")
- flag.StringVar(&stype, "stype", "", "stype")
- flag.Parse()
- var startid, endid bson.ObjectId
- if sid != "" && eid != "" {
- startid = qu.StringTOBsonId(sid)
- endid = qu.StringTOBsonId(eid)
- } else {
- start, _ := time.ParseInLocation(qu.Date_Short_Layout, startDate, time.Local)
- end, _ := time.ParseInLocation(qu.Date_Short_Layout, endDate, time.Local)
- startid = bson.NewObjectIdWithTime(start)
- endid = bson.NewObjectIdWithTime(end)
- }
- log.Println(startid, endid, ip, port, stype)
- udpclient = mu.UdpClient{Local: ":1470", BufSize: 1024}
- udpclient.Listen(processUdpMsg)
- by, _ := json.Marshal(map[string]interface{}{
- "gtid": startid,
- "lteid": endid,
- "stype": stype,
- })
- udpclient.WriteUdp(by, mu.OP_TYPE_DATA, &net.UDPAddr{
- IP: net.ParseIP(ip),
- Port: qu.IntAll(port),
- })
- b := make(chan bool, 1)
- <-b
- }
- func processUdpMsg(act byte, data []byte, ra *net.UDPAddr) {
- switch act {
- case mu.OP_TYPE_DATA:
- var mapInfo map[string]interface{}
- err := json.Unmarshal(data, &mapInfo)
- if err != nil {
- log.Println(err)
- } else {
- log.Println(mapInfo)
- }
- case mu.OP_NOOP: //下个节点回应
- log.Println("发送成功", string(data))
- }
- }
|