浏览代码

1.10 合并字段修改

jianghan7 5 年之前
父节点
当前提交
48e990a71f
共有 2 个文件被更改,包括 13 次插入17 次删除
  1. 5 2
      fullproject/src_v1/project.go
  2. 8 15
      fullproject/src_v1/task.go

+ 5 - 2
fullproject/src_v1/project.go

@@ -830,9 +830,12 @@ func (p *ProjectTask) UpdateProject(tmp map[string]interface{}, thisinfo *Info,
 		Bidstatus:    bs,
 	}
 	pInfo.InfoFiled[thisinfo.Id] = infofiled
-	set["infofield"] = map[string]interface{}{
-		thisinfo.Id: StructToMap(infofiled),
+	tmpMap := make(map[string]interface{})
+	for k, v := range pInfo.InfoFiled{
+		tmpMap[k] = StructToMap(v)
 	}
+	tmpMap[thisinfo.Id] = StructToMap(infofiled)
+	set["infofield"] = tmpMap
 
 	set["mpn"] = pInfo.MPN
 	set["mpc"] = pInfo.MPC

+ 8 - 15
fullproject/src_v1/task.go

@@ -96,7 +96,6 @@ func NewPT() *ProjectTask {
 
 var P_QL *ProjectTask
 var sp = make(chan bool, 5)
-var updatalock sync.RWMutex
 //初始化全量合并对象
 func init() {
 	P_QL = NewPT()
@@ -114,32 +113,26 @@ func (p *ProjectTask) updateAllQueue() {
 			arru[indexu] = v
 			indexu++
 			if indexu == p.saveSize {
-				updatalock.Lock()
-				tmparr := arru
-				arru = make([][]map[string]interface{}, p.saveSize)
-				updatalock.Unlock()
 				sp <- true
-				go func(tmparr [][]map[string]interface{}) {
+				go func(arru [][]map[string]interface{}) {
 					defer func() {
 						<-sp
 					}()
-					MongoTool.UpSertBulk(p.coll, tmparr...)
-				}(tmparr)
+					MongoTool.UpSertBulk(p.coll, arru...)
+				}(arru)
+				arru = make([][]map[string]interface{}, p.saveSize)
 				indexu = 0
 			}
 		case <-time.After(1000 * time.Millisecond):
 			if indexu > 0 {
-				updatalock.Lock()
-				tmparr := arru
-				arru = make([][]map[string]interface{}, p.saveSize)
-				updatalock.Unlock()
 				sp <- true
-				go func(tmparr [][]map[string]interface{}) {
+				go func(arru [][]map[string]interface{}) {
 					defer func() {
 						<-sp
 					}()
-					MongoTool.UpSertBulk(p.coll, tmparr...)
-				}(tmparr[:indexu])
+					MongoTool.UpSertBulk(p.coll, arru...)
+				}(arru[:indexu])
+				arru = make([][]map[string]interface{}, p.saveSize)
 				indexu = 0
 			}
 		}