fengweiqiang hace 5 años
padre
commit
2972564eb8
Se han modificado 1 ficheros con 27 adiciones y 22 borrados
  1. 27 22
      udp_city/src/main.go

+ 27 - 22
udp_city/src/main.go

@@ -18,6 +18,7 @@ var PageSize = 5000 //查询分页
 var biddingFields = `{"buyer":1,"modifyinfo":1}`
 var qyxyFields = `{"company_code":1,"province":1,"city":1,"district":1}`
 var findDb string
+var cc chan bool = make(chan bool, 5)
 
 func init() {
 	qu.ReadConfig(&Config)
@@ -28,6 +29,7 @@ func init() {
 	initCap := qu.IntAll(Config["dbsize"])
 	addr := qu.ObjToString(Config["mgodb"])
 	dbname := qu.ObjToString(Config["dbname"])
+	cc = make(chan bool, 3)
 	mgo.Mgo = mgo.MgoFactory(initCap, initCap*3, 120, addr, dbname)
 	mgo.Mgo_Bidding = mgo.MgoFactory(initCap, initCap*3, 120, qu.ObjToString(Config["mgodb_bidding"]), qu.ObjToString(Config["dbname_bidding"]))
 	nextNodes = qu.ObjArrToMapArr(Config["nextNode"].([]interface{}))
@@ -103,25 +105,28 @@ func getCity(sid, eid, rep string) {
 			}
 
 			_id := qu.BsonIdToSId(v["_id"])
-			rdata := cityMarshal(v)
-			if len(rdata) > 0 {
-				umap := make(map[string]interface{})
-				if v["modifyinfo"] == nil {
-					umap["modifyinfo"] = make(map[string]interface{})
-				} else {
-					umap["modifyinfo"] = v["modifyinfo"]
-				}
-				for rk, rv := range rdata {
-					umap[rk] = rv
-					umap["modifyinfo"].(map[string]interface{})[rk] = "企业信息"
+			cc <- true
+			go func(v map[string]interface{}) {
+				rdata := cityMarshal(v)
+				if len(rdata) > 0 {
+					umap := make(map[string]interface{})
+					if v["modifyinfo"] == nil {
+						umap["modifyinfo"] = make(map[string]interface{})
+					} else {
+						umap["modifyinfo"] = v["modifyinfo"]
+					}
+					for rk, rv := range rdata {
+						umap[rk] = rv
+						umap["modifyinfo"].(map[string]interface{})[rk] = "企业信息"
+					}
+					unum++
+					log.Println(unum, ",id:", _id)
+					mgo.Mgo_Bidding.UpdateById(table, v["_id"], map[string]interface{}{
+						"$set": umap,
+					})
 				}
-				unum++
-				log.Println(unum,",id:",_id)
-				mgo.Mgo_Bidding.UpdateById(table, v["_id"], map[string]interface{}{
-					"$set": umap,
-				})
-
-			}
+				<-cc
+			}(v)
 			index++
 			if index%1000 == 0 {
 				log.Println("index:", index, ",页码:", i+1, ",_id:", _id)
@@ -148,18 +153,18 @@ func cityMarshal(data map[string]interface{}) map[string]string {
 			if province := qu.ObjToString((*province_city_district)["province"]); province != "" {
 				rdata["area"] = province
 			}
-			if city := qu.ObjToString((*province_city_district)["city"]); city != "" && !strings.Contains(city,rdata["area"]) {
+			if city := qu.ObjToString((*province_city_district)["city"]); city != "" && !strings.Contains(city, rdata["area"]) {
 				rdata["city"] = city
 			}
-			if district := qu.ObjToString((*province_city_district)["district"]); district != "" && !strings.Contains(district,rdata["area"]){
+			if district := qu.ObjToString((*province_city_district)["district"]); district != "" && !strings.Contains(district, rdata["area"]) {
 				rdata["district"] = district
 			}
 			return rdata
 		}
 	}
 	if province := qu.ObjToString((*tmp)["province"]); province != "" {
-		province = strings.TrimRight(province,"省")
-		province = strings.TrimRight(province,"市")
+		province = strings.TrimRight(province, "省")
+		province = strings.TrimRight(province, "市")
 		rdata["area"] = province
 	}
 	if city := qu.ObjToString((*tmp)["city"]); city != "" {