|
@@ -35,8 +35,8 @@ var (
|
|
|
JyUdpAddr *net.UDPAddr
|
|
|
NeUdpAddr *net.UDPAddr
|
|
|
|
|
|
- EsBulkSize = 50 // es批量保存大小
|
|
|
- updateBiddingPool = make(chan []map[string]interface{}, 5000) //更新bingding数据
|
|
|
+ EsBulkSize = 50 // es批量保存大小
|
|
|
+ updateBiddingPool = make(chan map[string]interface{}, 5000) //更新bingding数据
|
|
|
updateBiddingSp = make(chan bool, 5)
|
|
|
saveEsPool = make(chan map[string]interface{}, 5000) //保存binding数据到es
|
|
|
saveEsSp = make(chan bool, 5)
|
|
@@ -306,43 +306,44 @@ type UdpNode struct {
|
|
|
retry int
|
|
|
}
|
|
|
|
|
|
-//UpdateBidding 更新bidding表数据
|
|
|
+// UpdateBidding 更新bidding表数据
|
|
|
func UpdateBidding() {
|
|
|
- arru := make([][]map[string]interface{}, 200)
|
|
|
- indexu := 0
|
|
|
+ //arru := make([][]map[string]interface{}, 10)
|
|
|
+ //indexu := 0
|
|
|
for {
|
|
|
select {
|
|
|
case v := <-updateBiddingPool:
|
|
|
- arru[indexu] = v
|
|
|
- indexu++
|
|
|
- if indexu == 200 {
|
|
|
- updateBiddingSp <- true
|
|
|
- go func(arru [][]map[string]interface{}) {
|
|
|
- defer func() {
|
|
|
- <-updateBiddingSp
|
|
|
- }()
|
|
|
- MgoB.UpdateBulk(config.Conf.DB.MongoB.Coll, arru...)
|
|
|
- }(arru)
|
|
|
- arru = make([][]map[string]interface{}, 200)
|
|
|
- indexu = 0
|
|
|
- }
|
|
|
- case <-time.After(1000 * time.Millisecond):
|
|
|
- if indexu > 0 {
|
|
|
- updateBiddingSp <- true
|
|
|
- go func(arru [][]map[string]interface{}) {
|
|
|
- defer func() {
|
|
|
- <-updateBiddingSp
|
|
|
- }()
|
|
|
- MgoB.UpdateBulk(config.Conf.DB.MongoB.Coll, arru...)
|
|
|
- }(arru[:indexu])
|
|
|
- arru = make([][]map[string]interface{}, 200)
|
|
|
- indexu = 0
|
|
|
- }
|
|
|
+ MgoB.UpdateById(config.Conf.DB.MongoB.Coll, v["_id"], map[string]interface{}{"$set": v["set"]})
|
|
|
+ //arru[indexu] = v
|
|
|
+ //indexu++
|
|
|
+ //if indexu == 10 {
|
|
|
+ // updateBiddingSp <- true
|
|
|
+ //go func(arru [][]map[string]interface{}) {
|
|
|
+ // defer func() {
|
|
|
+ // <-updateBiddingSp
|
|
|
+ //}()
|
|
|
+ //MgoB.UpdateBulk(config.Conf.DB.MongoB.Coll, arru...)
|
|
|
+ //}(arru)
|
|
|
+ //arru = make([][]map[string]interface{}, 10)
|
|
|
+ //indexu = 0
|
|
|
+ //}
|
|
|
+ //case <-time.After(1000 * time.Millisecond):
|
|
|
+ // if indexu > 0 {
|
|
|
+ // updateBiddingSp <- true
|
|
|
+ // go func(arru [][]map[string]interface{}) {
|
|
|
+ // defer func() {
|
|
|
+ // <-updateBiddingSp
|
|
|
+ // }()
|
|
|
+ // MgoB.UpdateBulk(config.Conf.DB.MongoB.Coll, arru...)
|
|
|
+ // }(arru[:indexu])
|
|
|
+ // arru = make([][]map[string]interface{}, 200)
|
|
|
+ // indexu = 0
|
|
|
+ // }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-//SaveBidErr 记录错误信息,暂时记录 附件过长的
|
|
|
+// SaveBidErr 记录错误信息,暂时记录 附件过长的
|
|
|
func SaveBidErr() {
|
|
|
arru := make([]map[string]interface{}, 200)
|
|
|
indexu := 0
|
|
@@ -378,62 +379,63 @@ func SaveBidErr() {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-//SaveEsMethod 保存到es
|
|
|
+// SaveEsMethod 保存到es
|
|
|
func SaveEsMethod() {
|
|
|
- arru := make([]map[string]interface{}, EsBulkSize)
|
|
|
- indexu := 0
|
|
|
+ //arru := make([]map[string]interface{}, EsBulkSize)
|
|
|
+ //indexu := 0
|
|
|
for {
|
|
|
select {
|
|
|
case v := <-saveEsPool:
|
|
|
- arru[indexu] = v
|
|
|
- indexu++
|
|
|
- if indexu == EsBulkSize {
|
|
|
- saveEsSp <- true
|
|
|
- go func(arru []map[string]interface{}) {
|
|
|
- defer func() {
|
|
|
- <-saveEsSp
|
|
|
- }()
|
|
|
- Es.BulkSave(config.Conf.DB.Es.IndexB, arru)
|
|
|
- //if config.Conf.DB.Es.IndexTmp != "" {
|
|
|
- // if config.Conf.DB.Es.Addr2 != "" {
|
|
|
- // Es2.BulkSave(config.Conf.DB.Es.IndexTmp, arru) // 新集群
|
|
|
- // }
|
|
|
- // Es.BulkSave(config.Conf.DB.Es.IndexTmp, arru) //老集群
|
|
|
- //}
|
|
|
- if config.Conf.DB.Es.Addr2 != "" {
|
|
|
- Es2.BulkSave(config.Conf.DB.Es.Indexb2, arru)
|
|
|
- }
|
|
|
-
|
|
|
- }(arru)
|
|
|
- arru = make([]map[string]interface{}, EsBulkSize)
|
|
|
- indexu = 0
|
|
|
- }
|
|
|
- case <-time.After(1000 * time.Millisecond):
|
|
|
- if indexu > 0 {
|
|
|
- saveEsSp <- true
|
|
|
- go func(arru []map[string]interface{}) {
|
|
|
- defer func() {
|
|
|
- <-saveEsSp
|
|
|
- }()
|
|
|
- Es.BulkSave(config.Conf.DB.Es.IndexB, arru)
|
|
|
- //if config.Conf.DB.Es.IndexTmp != "" {
|
|
|
- // if config.Conf.DB.Es.Addr2 != "" {
|
|
|
- // Es2.BulkSave(config.Conf.DB.Es.IndexTmp, arru) // 新集群
|
|
|
- // }
|
|
|
- // Es.BulkSave(config.Conf.DB.Es.IndexTmp, arru)
|
|
|
- //}
|
|
|
- if config.Conf.DB.Es.Addr2 != "" {
|
|
|
- Es2.BulkSave(config.Conf.DB.Es.Indexb2, arru)
|
|
|
- }
|
|
|
- }(arru[:indexu])
|
|
|
- arru = make([]map[string]interface{}, EsBulkSize)
|
|
|
- indexu = 0
|
|
|
+ Es.Save(config.Conf.DB.Es.IndexB, v)
|
|
|
+ if config.Conf.DB.Es.Addr2 != "" {
|
|
|
+ Es2.Save(config.Conf.DB.Es.Indexb2, v)
|
|
|
}
|
|
|
+
|
|
|
+ //arru[indexu] = v
|
|
|
+ //indexu++
|
|
|
+ //if indexu == EsBulkSize {
|
|
|
+ // saveEsSp <- true
|
|
|
+ //go func(arru []map[string]interface{}) {
|
|
|
+ // defer func() {
|
|
|
+ //<-saveEsSp
|
|
|
+ //}()
|
|
|
+ //if config.Conf.DB.Es.IndexTmp != "" {
|
|
|
+ // if config.Conf.DB.Es.Addr2 != "" {
|
|
|
+ // Es2.BulkSave(config.Conf.DB.Es.IndexTmp, arru) // 新集群
|
|
|
+ // }
|
|
|
+ // Es.BulkSave(config.Conf.DB.Es.IndexTmp, arru) //老集群
|
|
|
+ //}
|
|
|
+
|
|
|
+ //}(arru)
|
|
|
+ //arru = make([]map[string]interface{}, EsBulkSize)
|
|
|
+ //indexu = 0
|
|
|
+ //}
|
|
|
+ //case <-time.After(1000 * time.Millisecond):
|
|
|
+ // if indexu > 0 {
|
|
|
+ // saveEsSp <- true
|
|
|
+ // go func(arru []map[string]interface{}) {
|
|
|
+ // defer func() {
|
|
|
+ // <-saveEsSp
|
|
|
+ // }()
|
|
|
+ // Es.BulkSave(config.Conf.DB.Es.IndexB, arru)
|
|
|
+ //if config.Conf.DB.Es.IndexTmp != "" {
|
|
|
+ // if config.Conf.DB.Es.Addr2 != "" {
|
|
|
+ // Es2.BulkSave(config.Conf.DB.Es.IndexTmp, arru) // 新集群
|
|
|
+ // }
|
|
|
+ // Es.BulkSave(config.Conf.DB.Es.IndexTmp, arru)
|
|
|
+ //}
|
|
|
+ // if config.Conf.DB.Es.Addr2 != "" {
|
|
|
+ // Es2.BulkSave(config.Conf.DB.Es.Indexb2, arru)
|
|
|
+ // }
|
|
|
+ // }(arru[:indexu])
|
|
|
+ // arru = make([]map[string]interface{}, EsBulkSize)
|
|
|
+ // indexu = 0
|
|
|
+ //}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-//SaveAllEsMethod 保存爬虫采集临时数据,保存在华为云上
|
|
|
+// SaveAllEsMethod 保存爬虫采集临时数据,保存在华为云上
|
|
|
func SaveAllEsMethod() {
|
|
|
arru := make([]map[string]interface{}, EsBulkSize)
|
|
|
indexu := 0
|
|
@@ -570,7 +572,7 @@ func task() {
|
|
|
util.Debug("over ---", count)
|
|
|
}
|
|
|
|
|
|
-//LastUdpJob 处理UDP 没有接受数据
|
|
|
+// LastUdpJob 处理UDP 没有接受数据
|
|
|
func LastUdpJob() {
|
|
|
for {
|
|
|
responselock.Lock()
|
|
@@ -588,7 +590,7 @@ func LastUdpJob() {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-//sendErrMailApi 发送邮件
|
|
|
+// sendErrMailApi 发送邮件
|
|
|
func sendErrMailApi(title, body string) {
|
|
|
var tomail, api string
|
|
|
if config.Conf.Mail.Send {
|