|
@@ -9,6 +9,7 @@ import (
|
|
|
mu "mfw/util"
|
|
|
"net"
|
|
|
qu "qfw/util"
|
|
|
+ "strings"
|
|
|
"sync"
|
|
|
"time"
|
|
|
|
|
@@ -19,6 +20,7 @@ import (
|
|
|
var Udpclient mu.UdpClient //udp对象
|
|
|
var nextNodes []map[string]interface{}
|
|
|
var IsExtStop bool
|
|
|
+var udplock sync.Mutex
|
|
|
|
|
|
// 新增机器节点
|
|
|
func ExtractUdpUpdateMachine() {
|
|
@@ -75,53 +77,22 @@ func processUdpMsg(act byte, data []byte, ra *net.UDPAddr) {
|
|
|
log.Debug("收到监测......")
|
|
|
Udpclient.WriteUdp([]byte("monitor ok"), mu.OP_NOOP, ra)
|
|
|
} else {
|
|
|
- sid, _ := rep["gtid"].(string)
|
|
|
- eid, _ := rep["lteid"].(string)
|
|
|
- if sid == "" || eid == "" {
|
|
|
- log.Debug("err", "sid=", sid, ",eid=", eid)
|
|
|
+ nomal, _ := rep["nomal"].(string)
|
|
|
+ file, _ := rep["file"].(string)
|
|
|
+ fileArr := strings.Split(file, "-")
|
|
|
+ nomalArr := strings.Split(nomal, "-")
|
|
|
+ if len(fileArr) != 2 || len(nomalArr) != 2 || nomal == "" || file == "" {
|
|
|
+ log.Debug("接收upd异常...")
|
|
|
+ go Udpclient.WriteUdp([]byte("接收upd异常..."), mu.OP_NOOP, ra)
|
|
|
} else {
|
|
|
- //新版本控制抽取
|
|
|
- //udpinfo, _ := rep["stype"].(string)
|
|
|
- //if udpinfo == "" {
|
|
|
- // udpinfo = "udpok"
|
|
|
- //}
|
|
|
- //IsExtStop = false
|
|
|
- //ExtractByUdp(sid, eid, ra)
|
|
|
- //if !IsExtStop {
|
|
|
- // log.Debug("抽取完成udp通知抽取id段-控制台", udpinfo, sid, "~", eid)
|
|
|
- // Udpclient.WriteUdp([]byte(udpinfo), mu.OP_NOOP, ra)
|
|
|
- //} else {
|
|
|
- // log.Debug("抽取强制中断udp不通知-控制台", udpinfo, sid, "~", eid)
|
|
|
- //}
|
|
|
-
|
|
|
- //发布数据~重采数据~测试流程
|
|
|
- //key := sid + "-" + eid + "-" + qu.ObjToString(rep["stype"])
|
|
|
- //go Udpclient.WriteUdp([]byte(key), mu.OP_NOOP, ra)
|
|
|
- //log.Debug("udp通知抽取id段", sid, " ", eid)
|
|
|
- //ExtractByUdp(sid, eid, ra)
|
|
|
- //for _, m := range nextNodes {
|
|
|
- // by, _ := json.Marshal(map[string]interface{}{
|
|
|
- // "gtid": sid,
|
|
|
- // "lteid": eid,
|
|
|
- // "stype": qu.ObjToString(m["stype"]),
|
|
|
- // })
|
|
|
- // err_udp := Udpclient.WriteUdp(by, mu.OP_TYPE_DATA, &net.UDPAddr{
|
|
|
- // IP: net.ParseIP(m["addr"].(string)),
|
|
|
- // Port: qu.IntAll(m["port"]),
|
|
|
- // })
|
|
|
- // if err_udp != nil {
|
|
|
- // log.Debug(err_udp)
|
|
|
- // }
|
|
|
- //}
|
|
|
- //log.Debug("udp通知抽取完成,eid=", eid)
|
|
|
-
|
|
|
- //预处理模块
|
|
|
- key := sid + "-" + eid + "-" + qu.ObjToString(rep["stype"])
|
|
|
- go Udpclient.WriteUdp([]byte(key), mu.OP_NOOP, ra)
|
|
|
- //保存段落合并段落···
|
|
|
-
|
|
|
- log.Debug("udp通知抽取id段", sid, " ", eid)
|
|
|
- ExtractByUdpPre(sid, eid, ra)
|
|
|
+ go Udpclient.WriteUdp([]byte("ok"), mu.OP_NOOP, ra)
|
|
|
+ udplock.Lock()
|
|
|
+ ju.TaskUdpList = append(ju.TaskUdpList, map[string]map[string]string{
|
|
|
+ "nomal": {"sid": nomalArr[0], "eid": nomalArr[1]},
|
|
|
+ "file": {"sid": fileArr[0], "eid": fileArr[1]},
|
|
|
+ })
|
|
|
+ log.Debug("udp收到任务...数量:", len(ju.TaskUdpList))
|
|
|
+ udplock.Unlock()
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -326,7 +297,7 @@ func ExtractByUdp(sid, eid string, ra *net.UDPAddr, instanceId ...string) {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-func ExtractByUdpPre(sid, eid string, ra *net.UDPAddr, instanceId ...string) {
|
|
|
+func ExtractByUdpPre(n_sid, n_eid string, f_sid, f_eid string) {
|
|
|
defer qu.Catch()
|
|
|
if ext == nil {
|
|
|
ext = nil
|
|
@@ -369,12 +340,14 @@ func ExtractByUdpPre(sid, eid string, ra *net.UDPAddr, instanceId ...string) {
|
|
|
} else {
|
|
|
ext.BidTotal = 0
|
|
|
}
|
|
|
- query := bson.M{"_id": bson.M{"$gt": bson.ObjectIdHex(sid), "$lte": bson.ObjectIdHex(eid)}}
|
|
|
- count1 := ext.TaskInfo.FDB.Count("zktest_bidding_nomal", query)
|
|
|
- count2 := ext.TaskInfo.FDB.Count("zktest_bidding_file", query)
|
|
|
+ query1 := bson.M{"_id": bson.M{"$gt": bson.ObjectIdHex(n_sid), "$lte": bson.ObjectIdHex(n_eid)}}
|
|
|
+ query2 := bson.M{"_id": bson.M{"$gt": bson.ObjectIdHex(f_sid), "$lte": bson.ObjectIdHex(f_eid)}}
|
|
|
+ count1 := ext.TaskInfo.FDB.Count("bidding_nomal", query1)
|
|
|
+ count2 := ext.TaskInfo.FDB.Count("bidding_file", query2)
|
|
|
log.Debug("待抽取数量:", count1+count2)
|
|
|
- list1, _ := ext.TaskInfo.FDB.Find("zktest_bidding_nomal", query, nil, Fields, false, -1, -1)
|
|
|
- list2, _ := ext.TaskInfo.FDB.Find("zktest_bidding_file", query, nil, Fields, false, -1, -1)
|
|
|
+ return
|
|
|
+ list1, _ := ext.TaskInfo.FDB.Find("zktest_bidding_nomal", query1, nil, Fields, false, -1, -1)
|
|
|
+ list2, _ := ext.TaskInfo.FDB.Find("zktest_bidding_file", query2, nil, Fields, false, -1, -1)
|
|
|
new_list := append(*list1, *list2...)
|
|
|
now_time := time.Now().Unix()
|
|
|
total := 0
|
|
@@ -384,7 +357,10 @@ func ExtractByUdpPre(sid, eid string, ra *net.UDPAddr, instanceId ...string) {
|
|
|
log.Debug("cur index :", total, v["_id"])
|
|
|
}
|
|
|
total++
|
|
|
- if spidercode[qu.ObjToString(v["spidercode"])] { //开标记录
|
|
|
+ if spidercode[qu.ObjToString(v["spidercode"])] {
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ if qu.ObjToString(v["biddingid"]) != "" {
|
|
|
continue
|
|
|
}
|
|
|
ext.TaskInfo.ProcessPool <- true
|