|
@@ -10,10 +10,12 @@ import (
|
|
|
"jy/cluster"
|
|
|
db "jy/mongodbutil"
|
|
|
ju "jy/util"
|
|
|
+ log2 "log"
|
|
|
mu "mfw/util"
|
|
|
"net"
|
|
|
"net/http"
|
|
|
qu "qfw/util"
|
|
|
+ "strings"
|
|
|
"sync"
|
|
|
)
|
|
|
|
|
@@ -42,7 +44,7 @@ func processUdpMsg(act byte, data []byte, ra *net.UDPAddr) {
|
|
|
log.Debug("err", "sid=", sid, ",eid=", eid)
|
|
|
} else {
|
|
|
if stype == "distributed" { //分布式抽取分支
|
|
|
- go Udpclient.WriteUdp([]byte("udpok"), mu.OP_NOOP, ra)
|
|
|
+ go Udpclient.WriteUdp([]byte("发送分布式抽取分支"+qu.ObjToString(rep["ip"])+"udpok"), mu.OP_NOOP, ra)
|
|
|
log.Debug("分布式抽取id段", sid, " ", eid)
|
|
|
InstanceId := qu.ObjToString(rep["InstanceId"])
|
|
|
db.Mgo.Update("ecs", `{"InstanceId":"`+InstanceId+`"}`,
|
|
@@ -89,25 +91,44 @@ func processUdpMsg(act byte, data []byte, ra *net.UDPAddr) {
|
|
|
}
|
|
|
case mu.OP_NOOP: //下个节点回应
|
|
|
log.Debug(string(data))
|
|
|
+ log2.Println(string(data))
|
|
|
case mu.OP_SEND_EMAIL:
|
|
|
- log.Debug(data, ra.IP)
|
|
|
+ log.Debug("实例抽取完成,发送邮件:",string(data),ra.IP)
|
|
|
+ log2.Println("实例抽取完成,发送邮件:",string(data), ra.IP)
|
|
|
rep := make(map[string]interface{})
|
|
|
err := json.Unmarshal(data, &rep)
|
|
|
if err != nil {
|
|
|
log.Debug(err)
|
|
|
+ log2.Println(string(data), ra.IP)
|
|
|
} else {
|
|
|
- sendMail(string(data))
|
|
|
+ tmpstr := ""
|
|
|
+ for k,v :=range rep{
|
|
|
+ switch k {
|
|
|
+ case "desc":
|
|
|
+ tmpstr += fmt.Sprint(v)+","
|
|
|
+ case "count":
|
|
|
+ tmpstr += "区间数据量为"+fmt.Sprint(v)+","
|
|
|
+ case "index":
|
|
|
+ tmpstr += "实际抽取数据量"+fmt.Sprint(v)+","
|
|
|
+ case "instanceId":
|
|
|
+ tmpstr += "实例"+fmt.Sprint(v)+","
|
|
|
+ }
|
|
|
+ }
|
|
|
+ tmpstr = strings.TrimRight(tmpstr,",")
|
|
|
+ sendMail(tmpstr)
|
|
|
cluster.ModifyInstanceAutoReleaseTime(qu.ObjToString(rep["instanceId"]), qu.IntAll(ju.Config["deleteInstanceTimeHour"]))
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
func sendMail(content string) {
|
|
|
+ log2.Println(ju.Config["api"], ju.Config["tomail"],"jy-data-extract_3.2","抽取完成:"+content)
|
|
|
res, err := http.Get(fmt.Sprintf("%s?to=%s&title=%s&body=%s", ju.Config["api"], ju.Config["tomail"], "jy-data-extract_3.2", "抽取完成:"+content))
|
|
|
defer res.Body.Close()
|
|
|
if err == nil {
|
|
|
read, err := ioutil.ReadAll(res.Body)
|
|
|
- log.Debug("邮件发送:", string(read), err)
|
|
|
+ log2.Println("邮件发送:", string(read), err)
|
|
|
}
|
|
|
+ log2.Println("api email:",err)
|
|
|
}
|
|
|
|
|
|
var ext *ExtractTask
|
|
@@ -171,7 +192,7 @@ func ExtractByUdp(sid, eid string, ra *net.UDPAddr, instanceId ...string) {
|
|
|
if qu.ObjToString((*esc)["lastIdback"]) != "" {
|
|
|
sidback = qu.ObjToString((*esc)["lastIdback"])
|
|
|
}
|
|
|
-
|
|
|
+ go Udpclient.WriteUdp([]byte(fmt.Sprintf("IP=%s,数据接收成功,count=%d,pageNum=%d,query=%v\n",instanceId[1], count, pageNum, query)), mu.OP_NOOP, ra)
|
|
|
for i := startI; i < pageNum; i++ {
|
|
|
query = bson.M{"_id": bson.M{"$gte": bson.ObjectIdHex(sid), "$lte": bson.ObjectIdHex(eid)}}
|
|
|
fmt.Printf("page=%d,query=%v\n", i+1, query)
|
|
@@ -182,7 +203,6 @@ func ExtractByUdp(sid, eid string, ra *net.UDPAddr, instanceId ...string) {
|
|
|
continue
|
|
|
}
|
|
|
_id := qu.BsonIdToSId(v["_id"])
|
|
|
- log.Debug(_id)
|
|
|
var j, jf *ju.Job
|
|
|
if ext.IsFileField && v["projectinfo"] != nil {
|
|
|
v["isextFile"] = true
|
|
@@ -209,7 +229,6 @@ func ExtractByUdp(sid, eid string, ra *net.UDPAddr, instanceId ...string) {
|
|
|
continue
|
|
|
}
|
|
|
_id := qu.BsonIdToSId(v["_id"])
|
|
|
- log.Debug(_id)
|
|
|
var j, jf *ju.Job
|
|
|
if ext.IsFileField && v["projectinfo"] != nil {
|
|
|
v["isextFile"] = true
|
|
@@ -234,12 +253,9 @@ func ExtractByUdp(sid, eid string, ra *net.UDPAddr, instanceId ...string) {
|
|
|
}}, true, false)
|
|
|
}
|
|
|
des := make(map[string]interface{})
|
|
|
- des["desc"]=`分布式抽取完成,一小时后释放, sid:`+sid+`, eid:`+eid+`, count:`+fmt.Sprint(count)+`,index:`+fmt.Sprint(index)+`,bidtotal:`+fmt.Sprint(ext.BidTotal)+`,释放esc实例: `+instanceId[0]+`,`+instanceId[1]
|
|
|
- des["sid"] = sid
|
|
|
- des["eid"] = eid
|
|
|
+ des["desc"]="分布式抽取完成,一小时后释放"
|
|
|
des["count"] = count
|
|
|
des["index"] = index
|
|
|
- des["bidtotal"] = ext.BidTotal
|
|
|
des["instanceId"] = instanceId[0]
|
|
|
des["instanceIP"] = instanceId[1]
|
|
|
udpbytes, _ := json.Marshal(des)
|