|
|
|
@@ -334,7 +334,7 @@ func processFile(ctx context.Context, logChan *chan string, filePath string, fil
|
|
|
|
|
lines := make(chan string, 200)
|
|
|
|
|
var countLine int32 = 0
|
|
|
|
|
// 创建指定个worker同时处理文件上传
|
|
|
|
|
for i := 0; i < config.APPConfig.ThreadCount; i++ {
|
|
|
|
|
for i := range config.APPConfig.ThreadCount {
|
|
|
|
|
select {
|
|
|
|
|
case <-ctx.Done():
|
|
|
|
|
close(lines)
|
|
|
|
@@ -342,6 +342,7 @@ func processFile(ctx context.Context, logChan *chan string, filePath string, fil
|
|
|
|
|
default:
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//创建处理进程
|
|
|
|
|
go func() {
|
|
|
|
|
processLines(ctx, logChan, &lines, i, filePath, &countLine)
|
|
|
|
|
}()
|
|
|
|
@@ -356,6 +357,7 @@ func processFile(ctx context.Context, logChan *chan string, filePath string, fil
|
|
|
|
|
fmt.Println("panic:", f+":"+strconv.Itoa(l), r)
|
|
|
|
|
}
|
|
|
|
|
}()
|
|
|
|
|
|
|
|
|
|
for scanner.Scan() {
|
|
|
|
|
select {
|
|
|
|
|
case <-ctx.Done():
|
|
|
|
@@ -384,6 +386,7 @@ func processFile(ctx context.Context, logChan *chan string, filePath string, fil
|
|
|
|
|
Percentage: int(float64(countLine) / float64(fileLines) * 100),
|
|
|
|
|
},
|
|
|
|
|
)
|
|
|
|
|
time.Sleep(50 * time.Millisecond)
|
|
|
|
|
}
|
|
|
|
|
//上传完成,进度设为100
|
|
|
|
|
progress.Store(filepath.Base(filePath),
|
|
|
|
@@ -415,6 +418,7 @@ func processLines(ctx context.Context, logChan *chan string, lines *chan string,
|
|
|
|
|
|
|
|
|
|
// 跳过空行
|
|
|
|
|
if strings.TrimSpace(line) == "" {
|
|
|
|
|
atomic.AddInt32(countLine, 1)
|
|
|
|
|
continue
|
|
|
|
|
}
|
|
|
|
|
// 上传数据
|
|
|
|
|