|
@@ -37,20 +37,21 @@ func TaskWinner(mapinfo *map[string]interface{}) {
|
|
|
// topscopeclass项目类型-industry行业类型&&topscopeclass联系人项目类型
|
|
|
// (area地区-province省份 city城市-city城市 district区县-district区县)
|
|
|
// winneraddr-company_address企业地址
|
|
|
- SourceClientcc := SourceClient.GetMgoConn()
|
|
|
- defer SourceClient.DestoryMongoConn(SourceClientcc)
|
|
|
+ SourceClientcc := SourceClient.GetMgoConn(86400)
|
|
|
cursor := SourceClientcc.DB(Config["mgodb_bidding"]).C(Config["mgodb_mgoinit_c"]).Find(bson.M{
|
|
|
"_id": bson.M{
|
|
|
"$gte": GId,
|
|
|
"$lte": LtId,
|
|
|
},
|
|
|
}).Select(bson.M{"winner": 1, "winnertel": 1, "winnerperson": 1, "topscopeclass": 1, "winneraddr": 1}).Iter()
|
|
|
+
|
|
|
if cursor.Err() != nil {
|
|
|
+ SourceClientcc.Close()
|
|
|
log.Println(cursor.Err())
|
|
|
return
|
|
|
}
|
|
|
//判断是否是存量,是存量走Redis遍历
|
|
|
- if v, ok := (*mapinfo)["data_info"].(string); ok && v == "save" {
|
|
|
+ if v, ok := (*mapinfo)["data_info"].(string); ok && v == "save" {
|
|
|
//存量处理
|
|
|
conn := HisRedisPool.Conn()
|
|
|
defer conn.Close()
|
|
@@ -85,6 +86,7 @@ func TaskWinner(mapinfo *map[string]interface{}) {
|
|
|
log.Println(err)
|
|
|
}
|
|
|
}
|
|
|
+ SourceClientcc.Close()
|
|
|
//遍历redis
|
|
|
if scan := conn.Scan(0, "", 100); scan.Err() != nil {
|
|
|
log.Println(scan.Err())
|
|
@@ -101,15 +103,14 @@ func TaskWinner(mapinfo *map[string]interface{}) {
|
|
|
rdb.Do("SELECT", Config["redis_winner_db"])
|
|
|
if reply, err := redis.String(rdb.Do("GET", redisCName)); err != nil {
|
|
|
//redis不存在,存到临时表,定时任务处理
|
|
|
- //FClient.DbName = Config["mgodb_extract_kf"]
|
|
|
+ FClient.DbName = Config["mgodb_extract_kf"]
|
|
|
//if tmpid := FClient.Save("winner_new", tmps); tmpid == nil {
|
|
|
// log.Println("存量 FClient.Save err", tmpid)
|
|
|
//}
|
|
|
- fsavec := FClient.GetMgoConn().DB(Config["mgodb_extract_kf"]).C("winner_new")
|
|
|
for _, vmap := range rValuesMaps {
|
|
|
vmap["_id"] = bson.ObjectIdHex(vmap["_id"].(string))
|
|
|
- if err = fsavec.Insert(vmap); err != nil{
|
|
|
- log.Println("存量 FClient.Save err", err)
|
|
|
+ if err = FClient.SaveForOld("winner_new", vmap); err != nil {
|
|
|
+ log.Println("存量 FClient.Save err", err,vmap)
|
|
|
}
|
|
|
}
|
|
|
//log.Println("get redis id err:定时任务处理", err, tmp)
|
|
@@ -230,8 +231,8 @@ func TaskWinner(mapinfo *map[string]interface{}) {
|
|
|
if reply, err := redis.String(rdb.Do("GET", tmp["winner"])); err != nil {
|
|
|
//redis不存在存到临时表,定时任务处理
|
|
|
FClient.DbName = Config["mgodb_extract_kf"]
|
|
|
- if tmpid := FClient.Save("winner_new", tmp); tmpid == "" {
|
|
|
- log.Println("FClient.Save err", tmpid)
|
|
|
+ if err := FClient.SaveForOld("winner_new", tmp); err!=nil {
|
|
|
+ log.Println("FClient.Save err", err,tmp)
|
|
|
}
|
|
|
//log.Println("get redis id err:定时任务处理", err, tmp)
|
|
|
if err := rdb.Close(); err != nil {
|
|
@@ -349,19 +350,18 @@ func TimedTaskWinner() {
|
|
|
//time.Sleep(time.Hour*70)
|
|
|
t2 := time.NewTimer(time.Second * 5)
|
|
|
for range t2.C {
|
|
|
- Fcconn := FClient.GetMgoConn()
|
|
|
- defer FClient.DestoryMongoConn(Fcconn)
|
|
|
+ Fcconn := FClient.GetMgoConn(86400)
|
|
|
+ defer Fcconn.Close()
|
|
|
tmpLast := map[string]interface{}{}
|
|
|
if iter := Fcconn.DB(Config["mgodb_extract_kf"]).C("winner_new").Find(bson.M{}).Sort("-_id").Limit(1).Iter(); iter != nil {
|
|
|
if !iter.Next(&tmpLast) {
|
|
|
//临时表无数据
|
|
|
log.Println("临时表无数据:")
|
|
|
- t2.Reset(time.Minute * 5)
|
|
|
+ t2.Reset(time.Minute * 1)
|
|
|
continue
|
|
|
} else {
|
|
|
log.Println("临时表有数据:", tmpLast)
|
|
|
- fconn := FClient.GetMgoConn()
|
|
|
- defer FClient.DestoryMongoConn(fconn)
|
|
|
+ fconn := FClient.GetMgoConn(86400)
|
|
|
cursor := fconn.DB(Config["mgodb_extract_kf"]).C("winner_new").Find(bson.M{
|
|
|
"_id": bson.M{
|
|
|
"$lte": tmpLast["_id"],
|
|
@@ -415,11 +415,11 @@ func TimedTaskWinner() {
|
|
|
if !b || (*resulttmp)["_id"] == nil {
|
|
|
//log.Println(r)
|
|
|
//匹配不到原始库,存入异常表删除临时表
|
|
|
- fdmongo := FClient.GetMgoConn().DB(Config["mgodb_extract_kf"])
|
|
|
- if err := fdmongo.C("winner_err").Insert( tmp); err != nil {
|
|
|
- log.Println("存入异常表错误", err,tmp)
|
|
|
+ FClient.DbName = Config["mgodb_extract_kf"]
|
|
|
+ if err := FClient.SaveForOld("winner_err", tmp); err != nil {
|
|
|
+ log.Println("存入异常表错误", err, tmp)
|
|
|
}
|
|
|
- if deleteNum := fdmongo.C("winner_new").RemoveId( bson.ObjectIdHex(tmpId)); !b {
|
|
|
+ if deleteNum := FClient.Del("winner_new", bson.M{"_id": bson.ObjectIdHex(tmpId)}); !b {
|
|
|
log.Println("删除临时表错误", deleteNum)
|
|
|
}
|
|
|
continue
|
|
@@ -487,16 +487,16 @@ func TimedTaskWinner() {
|
|
|
//添加临时表匹配到的联系人
|
|
|
vvv := make(map[string]interface{})
|
|
|
vvv["infoid"] = tmp["_id"].(bson.ObjectId).Hex()
|
|
|
- if tmp["winnerperson"] != nil{
|
|
|
+ if tmp["winnerperson"] != nil {
|
|
|
vvv["contact_person"] = tmp["winnerperson"]
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
vvv["contact_person"] = ""
|
|
|
}
|
|
|
vvv["contact_type"] = "项目联系人"
|
|
|
// "winner": 1, "winnertel": 1, "winnerperson": 1, "topscopeclass": 1
|
|
|
- if tmp["winnertel"] != nil{
|
|
|
+ if tmp["winnertel"] != nil {
|
|
|
vvv["phone"] = tmp["winnertel"]
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
vvv["phone"] = ""
|
|
|
}
|
|
|
tmpclass := make([]string, 0)
|
|
@@ -569,8 +569,8 @@ func TimedTaskWinner() {
|
|
|
} else if sk == "wechat_accounts" {
|
|
|
savetmp[sk] = []interface{}{}
|
|
|
continue
|
|
|
- }else if sk == "industry"{
|
|
|
- tmpTopscopeclass := make([]string,0)
|
|
|
+ } else if sk == "industry" {
|
|
|
+ tmpTopscopeclass := make([]string, 0)
|
|
|
if v, ok := tmp["topscopeclass"].([]interface{}); ok {
|
|
|
for _, vv := range v {
|
|
|
if vvv, ok := vv.(string); ok && len(vvv) > 1 {
|
|
@@ -593,8 +593,6 @@ func TimedTaskWinner() {
|
|
|
//保存mongo
|
|
|
FClient.DbName = Config["mgodb_extract_kf"]
|
|
|
|
|
|
-
|
|
|
-
|
|
|
saveid := FClient.Save(Config["mgo_qyk_c"], savetmp)
|
|
|
if saveid != "" {
|
|
|
//保存redis
|
|
@@ -633,6 +631,7 @@ func TimedTaskWinner() {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ fconn.Close()
|
|
|
}
|
|
|
}
|
|
|
t2.Reset(time.Minute)
|