88 "github.com/olivere/elastic/v7"
99 "main/config"
1010 "main/service"
11+ "main/service/monitor"
1112 "main/service/parse"
1213 "strconv"
1314 "sync"
@@ -21,7 +22,7 @@ type section struct {
2122
2223
2324func BulkPushRun (esConfig service.EsConfig , name string ,
24- conn config.Content , channel int ,) error {
25+ conn config.Content , channel int , configName string ) error {
2526
2627 // 最小 最大 启动数 计算区间
2728 var max ,min int
@@ -38,11 +39,31 @@ func BulkPushRun(esConfig service.EsConfig, name string,
3839
3940 channelData := generate (max , min , channel )
4041
42+
43+ channelWorkNumbers := (max - min )/ conn .Writer .Parameter .BatchSize
44+ monitor .ProgressBars [configName ] = monitor.ProgressBar {Total : channelWorkNumbers , Progress : & sync.Map {}}
45+ monitor .ProgressBars [configName ].Progress .Store ("number" , - 1 )
46+
47+ //fmt.Printf("max:%s, min:%s, = : %s \n", max, min, channelWorkNumbers)
48+
49+
50+
4151 var wg = sync.WaitGroup {}
4252
53+
54+ /* go func() {
55+ for true {
56+ a,_ := monitor.ProgressBars[name].Progress.Load("number")
57+ fmt.Printf("【%s】total:%s, ing:%s \n",name,monitor.ProgressBars[name].Total, a)
58+ time.Sleep(time.Second*10)
59+ }
60+
61+ }()*/
62+
4363 for _ ,v := range channelData {
4464 wg .Add (1 )
45- go workProcess (v .Max , v .Min , conn , esConfig , name , & wg )
65+ //fmt.Printf("最小:%s, 最大:%s \n",v.Min, v.Max)
66+ go workProcess (v .Max , v .Min , conn , esConfig , name , & wg , configName )
4667 }
4768
4869 wg .Wait ()
@@ -59,7 +80,7 @@ func generate(max int, min int, channel int) map[int]section {
5980 channelPip := make (map [int ]section )
6081 extent := (max - min ) / channel
6182
62- for i := 0 ; i <= channel ; i ++ {
83+ for i := 1 ; i <= channel ; i ++ {
6384 channelPip [i ] = section {min ,min + extent }
6485 min = min + extent
6586 }
@@ -72,6 +93,7 @@ func generate(max int, min int, channel int) map[int]section {
7293func workProcess (max int , min int , conn config.Content ,
7394 esConfig service.EsConfig , name string ,
7495 wg * sync.WaitGroup ,
96+ configName string ,
7597 ) (error ) {
7698
7799 client := service .NewEsObj (esConfig )
@@ -102,10 +124,14 @@ func workProcess (max int , min int, conn config.Content,
102124 return error
103125 }
104126
105- for i := min ; i <= max ; i = i + conn .Writer .Parameter .BatchSize {
127+ for i := min ; i <= max ; i = i + conn .Writer .Parameter .BatchSize {
128+
129+ a ,_ := monitor .ProgressBars [configName ].Progress .Load ("number" )
130+ monitor .ProgressBars [configName ].Progress .Store ("number" , a .(int )+ 1 )
106131
107132 temp := conn .Writer .Parameter .BatchSize + i
108133
134+
109135 if temp > max {
110136 temp = max
111137 }
0 commit comments