main.go 3.1 KB

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