支持delete,修改err输出为stderr

This commit is contained in:
algotao
2025-04-22 14:30:30 +08:00
parent a0bf198879
commit e7d4aa27f1
16 changed files with 151 additions and 72 deletions

View File

@@ -4,7 +4,6 @@ import (
"bufio"
"flag"
"fmt"
"log/slog"
"net/http"
"os"
"path"
@@ -32,7 +31,7 @@ func RunWrite(args ...string) error {
clear := paramClear(fs)
if err := fs.Parse(args); err != nil {
fmt.Println("command line parse error", "err", err)
fmt.Fprintln(os.Stderr, "command line parse error", "err", err)
return err
}
@@ -43,9 +42,10 @@ func RunWrite(args ...string) error {
cfg, err := LoadConfigFile(*cfgFile)
if err != nil {
slog.Error("LoadConfigFile error", "err", err)
fmt.Fprintln(os.Stderr, "load config file error", "err", err)
return err
}
writeParams := writeParams{
cfg: cfg,
sourcePath: *sourcePath,
@@ -65,6 +65,7 @@ func RunWrite(args ...string) error {
func doWrite(writeParams writeParams) error {
fsInfo, err := os.Stat(writeParams.sourcePath)
if err != nil {
fmt.Fprintln(os.Stderr, "file stat error", "err", err)
return err
}
@@ -76,6 +77,7 @@ func doWrite(writeParams writeParams) error {
// 读取目录下信息
dirEntry, err := os.ReadDir(writeParams.sourcePath)
if err != nil {
fmt.Fprintln(os.Stderr, "read dir error", "err", err)
return err
}
@@ -96,6 +98,7 @@ func doLoadFileToWrite(writeParams writeParams) error {
// 读取文件并按行遍历,以\t分割为两列第一列为userid第二列解析为string数组
file, err := os.Open(writeParams.sourcePath)
if err != nil {
fmt.Fprintln(os.Stderr, "open file error", "file", writeParams.sourcePath, "err", err)
return err
}
defer file.Close()
@@ -108,17 +111,18 @@ func doLoadFileToWrite(writeParams writeParams) error {
succTotal := uint32(0)
total := uint32(0)
for scaner.Scan() {
total++
line := scaner.Text()
if line == "" {
continue
}
saasWriteItem := &saasapi.WriteItem{}
if err = protojson.Unmarshal([]byte(line), saasWriteItem); err != nil {
fmt.Fprintln(os.Stderr, "protojson unmashal error", "file", writeParams.sourcePath, "line", total, "err", err)
return err
}
saasWriteItems = append(saasWriteItems, saasWriteItem)
total++
if len(saasWriteItems) == int(writeParams.batchSize) {
if succ, _, err = submitWrite(writeParams, saasWriteItems); err != nil {
@@ -130,7 +134,6 @@ func doLoadFileToWrite(writeParams writeParams) error {
saasWriteItems = saasWriteItems[:0]
}
}
if len(saasWriteItems) > 0 {
@@ -164,7 +167,13 @@ func submitWrite(writeParams writeParams, saasWriteCmds []*saasapi.WriteItem) (s
res, err := writeParams.saasHttp.Write(saasReq)
if err != nil {
slog.Error("submitWrite error", "err", err)
fmt.Fprintln(os.Stderr, "submit write error", "err", err)
return
}
if res.GetCode() != saasapi.ErrorCode_SUCC {
err = fmt.Errorf("write failed. code:%v, status:%v", res.GetCode(), res.GetStatus())
fmt.Fprintln(os.Stderr, protojson.Format(res))
return
}