|
@@ -26,22 +26,29 @@ type Spider struct {
|
|
|
State int `json:"state"`
|
|
|
Comeintime int64 `json:"comeintime"`
|
|
|
}
|
|
|
-
|
|
|
-var CodeMap map[string]*Spider
|
|
|
-
|
|
|
type EventNum struct {
|
|
|
Event int //节点
|
|
|
Num int //节点爬虫数量
|
|
|
}
|
|
|
|
|
|
-//节点上的爬虫个数
|
|
|
-var EventMapType1 = map[int]int{} //7100、7110、7400、7410
|
|
|
-var EventMapType2 = map[int]int{} //7200、7210、7300、7310
|
|
|
-var EventMapType3 = map[int]int{} //7500、7510、7700
|
|
|
+var (
|
|
|
+ CodeMap map[string]*Spider
|
|
|
+ //节点上的爬虫个数
|
|
|
+ EventMapType1 = map[int]int{} //7100、7110、7400、7410
|
|
|
+ EventMapType2 = map[int]int{} //7200、7210、7300、7310
|
|
|
+ EventMapType3 = map[int]int{} //7500、7510、7700
|
|
|
+ EventMapType4 = map[int]int{} //7520
|
|
|
|
|
|
-var EventArrType1 []*EventNum //7100、7110、7400、7410
|
|
|
-var EventArrType2 []*EventNum //7200、7210、7300、7310
|
|
|
-var EventArrType3 []*EventNum //7500、7510、7700
|
|
|
+ EventArrType1 []*EventNum //7100、7110、7400、7410
|
|
|
+ EventArrType2 []*EventNum //7200、7210、7300、7310
|
|
|
+ EventArrType3 []*EventNum //7500、7510、7700
|
|
|
+ EventArrType4 []*EventNum //7520
|
|
|
+)
|
|
|
+
|
|
|
+const (
|
|
|
+ BIDEVENTLIMIT, MORETHANCOMEVENTLIMIT, LESSTHANCOMEVENTLIMIT, ZEROEVENTLIMIT int = 1000, 200, 10, 0
|
|
|
+ BIDEVENTTYPE, MORETHANCOMEVENTTYPE, LESSTHANCOMEVENTTYPE, ZEROEVENTTYPE int = 1, 2, 3, 4
|
|
|
+)
|
|
|
|
|
|
func LuaMoveEvent() {
|
|
|
defer qu.Catch()
|
|
@@ -90,6 +97,9 @@ func GetLuaInfo() {
|
|
|
site := qu.ObjToString(tmp["site"])
|
|
|
channel := qu.ObjToString(tmp["channel"])
|
|
|
event := qu.IntAll(tmp["event"])
|
|
|
+ if event == 7410 { //7410节点爬虫不参与节点迁移
|
|
|
+ return
|
|
|
+ }
|
|
|
href := ""
|
|
|
maxPage, cycletime := 0, 0
|
|
|
if param_common := tmp["param_common"].([]interface{}); len(param_common) >= 12 {
|
|
@@ -98,15 +108,17 @@ func GetLuaInfo() {
|
|
|
cycletime = qu.IntAll(param_common[6])
|
|
|
}
|
|
|
lock.Lock()
|
|
|
- if event != 7410 {
|
|
|
- if util.CodeEventType[event] == 1 {
|
|
|
- EventMapType1[event]++
|
|
|
- } else if util.CodeEventType[event] == 2 {
|
|
|
- EventMapType2[event]++
|
|
|
- } else if util.CodeEventType[event] == 3 {
|
|
|
- EventMapType3[event]++
|
|
|
- }
|
|
|
+ //if event != 7410 {
|
|
|
+ if util.CodeEventType[event] == 1 {
|
|
|
+ EventMapType1[event]++
|
|
|
+ } else if util.CodeEventType[event] == 2 {
|
|
|
+ EventMapType2[event]++
|
|
|
+ } else if util.CodeEventType[event] == 3 {
|
|
|
+ EventMapType3[event]++
|
|
|
+ } else if util.CodeEventType[event] == 4 {
|
|
|
+ EventMapType4[event]++
|
|
|
}
|
|
|
+ //}
|
|
|
CodeMap[code] = &Spider{
|
|
|
Code: code,
|
|
|
Site: site,
|
|
@@ -153,7 +165,16 @@ func GetLuaInfo() {
|
|
|
sort.Slice(EventArrType3, func(i, j int) bool {
|
|
|
return EventArrType3[i].Num < EventArrType3[j].Num // 升序
|
|
|
})
|
|
|
- logger.Debug("爬虫基本信息准备完成...", EventArrType1[0].Event, EventArrType2[0].Event, EventArrType3[0].Event)
|
|
|
+ for event, num := range EventMapType4 {
|
|
|
+ EventArrType4 = append(EventArrType4, &EventNum{
|
|
|
+ Event: event,
|
|
|
+ Num: num,
|
|
|
+ })
|
|
|
+ }
|
|
|
+ sort.Slice(EventArrType4, func(i, j int) bool {
|
|
|
+ return EventArrType4[i].Num < EventArrType4[j].Num // 升序
|
|
|
+ })
|
|
|
+ logger.Debug("爬虫基本信息准备完成...", EventArrType1[0].Event, EventArrType2[0].Event, EventArrType3[0].Event, EventArrType4[0].Event)
|
|
|
}
|
|
|
|
|
|
func GetDataNum() {
|
|
@@ -206,35 +227,28 @@ func GetDataNum() {
|
|
|
func GetMoveLua() {
|
|
|
defer qu.Catch()
|
|
|
/*
|
|
|
+ 7410节点特殊不参与节点转移
|
|
|
1、按入库时间采集的数据量统计
|
|
|
2、转移节点规则
|
|
|
- 转移至高频率模式(7100、7110、7400、7410):30天采集总量超过500条
|
|
|
- 转移至低频率队列模式(7200、7210、7300、7310):30天采集总量50-500条
|
|
|
- 转移至极低频率模式(7500、7510、7700):30天采集总量0-50条
|
|
|
- 特殊节点(7520):0条
|
|
|
+ 转移至高频率模式(7100、7110、7400):30天采集总量超过1000条
|
|
|
+ 转移至低频率队列模式(7200、7210、7300、7310):30天采集总量200-1000条
|
|
|
+ 转移至极低频率模式(7500、7510、7700):30天采集总量10-200条
|
|
|
+ 转移至几乎无数据节点(7520):0-10条
|
|
|
*/
|
|
|
save := []map[string]interface{}{}
|
|
|
for _, sp := range CodeMap {
|
|
|
- if sp.DataNum >= 500 && sp.FromEvent != 7410 && util.CodeEventType[sp.FromEvent] != 1 { //本身不是高性能节点超过500条的
|
|
|
+ if sp.DataNum >= BIDEVENTLIMIT && util.CodeEventType[sp.FromEvent] != BIDEVENTTYPE {
|
|
|
sp.IsMove = true
|
|
|
sp.ToEvent = EventArrType1[0].Event
|
|
|
- } else if sp.DataNum >= 10 && sp.DataNum < 500 && sp.FromEvent != 7410 && util.CodeEventType[sp.FromEvent] != 2 {
|
|
|
+ } else if sp.DataNum >= MORETHANCOMEVENTLIMIT && sp.DataNum < BIDEVENTLIMIT && util.CodeEventType[sp.FromEvent] != MORETHANCOMEVENTTYPE {
|
|
|
sp.IsMove = true
|
|
|
sp.ToEvent = EventArrType2[0].Event
|
|
|
- } else if sp.DataNum > 0 && sp.DataNum < 10 && util.CodeEventType[sp.FromEvent] != 3 {
|
|
|
+ } else if sp.DataNum > LESSTHANCOMEVENTLIMIT && sp.DataNum < MORETHANCOMEVENTLIMIT && util.CodeEventType[sp.FromEvent] != LESSTHANCOMEVENTTYPE {
|
|
|
sp.IsMove = true
|
|
|
- if sp.FromEvent == 7410 { //7410节点特殊性,此处表示7410节点的爬虫要更新采集频率
|
|
|
- sp.ToEvent = 7410
|
|
|
- } else {
|
|
|
- sp.ToEvent = EventArrType3[0].Event
|
|
|
- }
|
|
|
- } else if sp.DataNum == 0 && util.CodeEventType[sp.FromEvent] != 4 {
|
|
|
+ sp.ToEvent = EventArrType3[0].Event
|
|
|
+ } else if sp.DataNum <= LESSTHANCOMEVENTLIMIT && util.CodeEventType[sp.FromEvent] != ZEROEVENTTYPE {
|
|
|
sp.IsMove = true
|
|
|
- if sp.FromEvent == 7410 { //7410节点特殊性,此处表示7410节点的爬虫要更新采集频率
|
|
|
- sp.ToEvent = 7410
|
|
|
- } else {
|
|
|
- sp.ToEvent = 7520
|
|
|
- }
|
|
|
+ sp.ToEvent = EventArrType4[0].Event
|
|
|
}
|
|
|
//存储爬虫统计信息
|
|
|
byteText, err := json.Marshal(sp)
|