|
@@ -58,6 +58,7 @@ type ProjectTask struct {
|
|
// LockPoolLock sync.Mutex
|
|
// LockPoolLock sync.Mutex
|
|
// m1, m23, m4 map[int]int
|
|
// m1, m23, m4 map[int]int
|
|
// l1, l23, l4 map[int]*sync.Mutex
|
|
// l1, l23, l4 map[int]*sync.Mutex
|
|
|
|
+ Brun bool
|
|
}
|
|
}
|
|
|
|
|
|
func NewPT() *ProjectTask {
|
|
func NewPT() *ProjectTask {
|
|
@@ -83,6 +84,7 @@ func NewPT() *ProjectTask {
|
|
}
|
|
}
|
|
|
|
|
|
var P_QL *ProjectTask
|
|
var P_QL *ProjectTask
|
|
|
|
+var sp = make(chan bool, 5)
|
|
|
|
|
|
//初始化全量合并对象
|
|
//初始化全量合并对象
|
|
func init() {
|
|
func init() {
|
|
@@ -95,7 +97,6 @@ func init() {
|
|
func (p *ProjectTask) updateAllQueue() {
|
|
func (p *ProjectTask) updateAllQueue() {
|
|
arru := make([][]map[string]interface{}, p.saveSize)
|
|
arru := make([][]map[string]interface{}, p.saveSize)
|
|
indexu := 0
|
|
indexu := 0
|
|
- sp := make(chan bool, 5)
|
|
|
|
for {
|
|
for {
|
|
select {
|
|
select {
|
|
case v := <-p.updatePool:
|
|
case v := <-p.updatePool:
|
|
@@ -282,15 +283,15 @@ func (p *ProjectTask) taskZl(udpInfo map[string]interface{}) {
|
|
//生成查询语句执行
|
|
//生成查询语句执行
|
|
p.enter(db, coll, q)
|
|
p.enter(db, coll, q)
|
|
}
|
|
}
|
|
- for {
|
|
|
|
- if len(P_QL.updatePool) > 0 {
|
|
|
|
- log.Println("等待调用udp", len(P_QL.updatePool))
|
|
|
|
- time.Sleep(1 * time.Second)
|
|
|
|
- } else {
|
|
|
|
- break
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
if udpInfo["stop"] == nil {
|
|
if udpInfo["stop"] == nil {
|
|
|
|
+ for i := 0; i < 5; i++ {
|
|
|
|
+ sp <- true
|
|
|
|
+ }
|
|
|
|
+ for i := 0; i < 5; i++ {
|
|
|
|
+ <-sp
|
|
|
|
+ }
|
|
|
|
+ log.Println("保存完成,生索引", p.pici)
|
|
|
|
+ time.Sleep(5 * time.Second)
|
|
nextNode(udpInfo, p.pici)
|
|
nextNode(udpInfo, p.pici)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -318,6 +319,10 @@ func nextNode(mapInfo map[string]interface{}, pici int64) {
|
|
|
|
|
|
func (p *ProjectTask) enter(db, coll string, q map[string]interface{}) {
|
|
func (p *ProjectTask) enter(db, coll string, q map[string]interface{}) {
|
|
defer util.Catch()
|
|
defer util.Catch()
|
|
|
|
+ defer func() {
|
|
|
|
+ p.Brun = false
|
|
|
|
+ }()
|
|
|
|
+ p.Brun = true
|
|
count, taskcount := 0, 0
|
|
count, taskcount := 0, 0
|
|
|
|
|
|
pool := make(chan bool, p.thread)
|
|
pool := make(chan bool, p.thread)
|