main.go 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. package main
  2. import (
  3. "encoding/json"
  4. "flag"
  5. "log"
  6. mu "mfw/util"
  7. "net"
  8. "os"
  9. qutil "qfw/util"
  10. "qfw/util/mongodb"
  11. "time"
  12. "gopkg.in/mgo.v2/bson"
  13. )
  14. var startDate, endDate string
  15. func main() {
  16. ip, p, tmptime, tmpkey, id1, id2, stype, q, bkey, param, ids := "", 0, 0, "", "", "", "", "", "", "", ""
  17. flag.StringVar(&startDate, "start", "", "开始日期2006-01-02")
  18. flag.StringVar(&endDate, "end", "", "结束日期2006-01-02")
  19. flag.StringVar(&ip, "ip", "192.168.3.205", "ip")
  20. flag.IntVar(&p, "p", 1484, "端口")
  21. flag.IntVar(&tmptime, "tmptime", 0, "时间查询")
  22. flag.StringVar(&tmpkey, "tmpkey", "", "时间字段")
  23. flag.StringVar(&id1, "gtid", "5a86328a40d2d9bbe88e4138", "gtid")
  24. flag.StringVar(&id2, "lteid", "5a8f8cd340d2d9bbe8a21400", "lteid")
  25. flag.StringVar(&ids, "ids", "", "id1,id2")
  26. flag.StringVar(&stype, "stype", "biddingall", "stype,传递类型")
  27. flag.StringVar(&bkey, "bkey", "", "bkey,加上此参数表示不生关键词和摘要")
  28. flag.StringVar(&q, "q", "", "q查询语句\"{'':''}\",有q就不要gtid,lteid")
  29. flag.StringVar(&param, "param", "", "param,生信息发布或其他索引时用双引号套单引号\"{'mgoaddr':'','d':'','c':'','index':'','type':''}\"")
  30. flag.Parse()
  31. if startDate != "" || endDate != "" {
  32. start, _ := time.ParseInLocation(qutil.Date_Short_Layout, startDate, time.Local)
  33. end, _ := time.ParseInLocation(qutil.Date_Short_Layout, endDate, time.Local)
  34. id1 = qutil.BsonIdToSId(bson.NewObjectIdWithTime(start))
  35. id2 = qutil.BsonIdToSId(bson.NewObjectIdWithTime(end))
  36. log.Println(id1, id2)
  37. }
  38. if ip != "" && p > 0 && ((id1 != "" && id2 != "") || (q != "" || tmptime > 0)) {
  39. toadd := &net.UDPAddr{
  40. IP: net.ParseIP(ip),
  41. Port: p,
  42. }
  43. udp := mu.UdpClient{Local: ":50010", BufSize: 1024}
  44. udp.Listen(func(b byte, data []byte, add *net.UDPAddr) {
  45. switch b {
  46. case mu.OP_NOOP:
  47. log.Println(string(data))
  48. os.Exit(0)
  49. }
  50. })
  51. m1 := map[string]interface{}{
  52. "gtid": id1,
  53. "lteid": id2,
  54. "stype": stype,
  55. }
  56. if bkey != "" {
  57. m1["bkey"] = bkey
  58. }
  59. if ids != "" {
  60. m1["ids"] = ids
  61. }
  62. if q != "" {
  63. m1["query"] = mongodb.ObjToMQ(q, true) //qutil.ObjToMap(q)
  64. }
  65. if tmptime > 0 && tmpkey != "" {
  66. m1["query"] = map[string]interface{}{tmpkey: map[string]interface{}{"$gte": tmptime}}
  67. }
  68. if param != "" {
  69. pm := qutil.ObjToMap(param)
  70. for k, v := range *pm {
  71. m1[k] = v
  72. }
  73. }
  74. by, _ := json.Marshal(m1)
  75. log.Println(string(by))
  76. udp.WriteUdp(by, mu.OP_TYPE_DATA, toadd)
  77. time.Sleep(30 * time.Second)
  78. } else {
  79. flag.PrintDefaults()
  80. log.Println("参数错误.")
  81. }
  82. }