|
@@ -7,7 +7,6 @@ import (
|
|
|
"log"
|
|
|
qu "qfw/util"
|
|
|
mgdb "qfw/util/mongodb"
|
|
|
- mgu "qfw/util/mongodbutil"
|
|
|
"qfw/util/redis"
|
|
|
"regexp"
|
|
|
"sort"
|
|
@@ -46,7 +45,7 @@ type Front struct {
|
|
|
getJson xweb.Mapper `xweb:"/center/spider/json"` //
|
|
|
delRedis xweb.Mapper `xweb:"/center/spider/delRedis"` //清理Redis
|
|
|
updateESP xweb.Mapper `xweb:"/center/spider/updateesp"` //修改爬虫的节点/状态/平台
|
|
|
- updatePendState xweb.Mapper `xweb:"/center/spider/updatePendState"` //修改爬虫的节点/状态/平台
|
|
|
+ updatePendState xweb.Mapper `xweb:"/center/spider/updatePendState"` //更新爬虫挂起状态
|
|
|
|
|
|
spiderModel xweb.Mapper `xweb:"/center/model"` //获取补充模型
|
|
|
runStep xweb.Mapper `xweb:"/center/run"` //方法测试
|
|
@@ -874,8 +873,12 @@ func (f *Front) UpdateESP() {
|
|
|
update := map[string]interface{}{
|
|
|
"$set": set,
|
|
|
}
|
|
|
+ one, _ := u.MgoE.FindById("luaconfig", id, nil)
|
|
|
+ if len(*one) == 0 {
|
|
|
+ f.Write("n")
|
|
|
+ return
|
|
|
+ }
|
|
|
if w == "state" { //无效爬虫改为待完成
|
|
|
- one, _ := u.MgoE.FindById("luaconfig", id, map[string]interface{}{"historyevent": 1, "event": 1})
|
|
|
tmpEvent := qu.IntAll((*one)["event"])
|
|
|
if one != nil && len(*one) > 0 {
|
|
|
if (*one)["historyevent"] == nil && tmpEvent != 7000 { //除7000节点外没有historyevent的要重新设置
|
|
@@ -888,15 +891,38 @@ func (f *Front) UpdateESP() {
|
|
|
} else if w == "platform" {
|
|
|
set["platform"] = val
|
|
|
if val != "golua平台" { //由lua平台切换到其他平台,删除心跳;爬虫下架;修改爬虫状态
|
|
|
- set["state"] = 0
|
|
|
- b := mgu.Update("spider_heart", "spider", "spider", map[string]interface{}{"code": code}, map[string]interface{}{"$set": map[string]interface{}{"del": true}}, false, true)
|
|
|
+ b := u.MgoS.Update("spider_heart", map[string]interface{}{"code": code}, map[string]interface{}{"$set": map[string]interface{}{"del": true}}, false, true)
|
|
|
qu.Debug("Del Heart:", b)
|
|
|
- b, err := UpStateAndUpSpider(code, "", "", "", Sp_state_6) //线上爬虫下架
|
|
|
- qu.Debug("爬虫下架成功:", b)
|
|
|
- if !b || err != nil {
|
|
|
+ b, err := spider.UpdateSpiderByCodeState(code, "6", qu.IntAll((*one)["event"])) //下架
|
|
|
+ if b && err == nil {
|
|
|
+ //历史节点下架为了避免线上运行爬虫待完成时改为7000采集历史,但是又转到其他平台,导致原线上运行节点爬虫并未下线,心跳异常
|
|
|
+ b, err = spider.UpdateSpiderByCodeState(code, "6", qu.IntAll((*one)["historyevent"]))
|
|
|
+ if b && err == nil {
|
|
|
+ set["state"] = 0 //更新状态
|
|
|
+ set["luauser"] = map[string]interface{}{
|
|
|
+ "createuser": (*one)["createuser"],
|
|
|
+ "createuserid": (*one)["createuserid"],
|
|
|
+ "createuseremail": (*one)["createuseremail"],
|
|
|
+ "modifyuser": (*one)["modifyuser"],
|
|
|
+ "modifyuserid": (*one)["modifyuserid"],
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ qu.Debug("历史节点下架失败")
|
|
|
+ f.Write("n")
|
|
|
+ return
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ qu.Debug("增量节点下架失败")
|
|
|
f.Write("n")
|
|
|
return
|
|
|
}
|
|
|
+ //qu.Debug("下架:", upresult, code)
|
|
|
+ //b, err := UpStateAndUpSpider(code, "", "", "", Sp_state_6) //线上爬虫下架
|
|
|
+ //qu.Debug("爬虫下架成功:", b)
|
|
|
+ //if !b || err != nil {
|
|
|
+ // f.Write("n")
|
|
|
+ // return
|
|
|
+ //}
|
|
|
}
|
|
|
} else { //修改节点
|
|
|
event, _ := strconv.Atoi(val)
|
|
@@ -917,9 +943,11 @@ func (f *Front) UpdateESP() {
|
|
|
if mgdb.Update("luaconfig", query, update, false, false) {
|
|
|
log.Println("Id:", id, " Update", w, val, "Success")
|
|
|
f.Write("y")
|
|
|
+ return
|
|
|
} else {
|
|
|
log.Println("Id:", id, " Update", w, val, "Failed")
|
|
|
f.Write("n")
|
|
|
+ return
|
|
|
}
|
|
|
f.Write("n")
|
|
|
}
|