Bladeren bron

add argument rebuild

libf 3 maanden geleden
bovenliggende
commit
0dea6c13b9
6 gewijzigde bestanden met toevoegingen van 18 en 9 verwijderingen
  1. 1 1
      go.mod
  2. 2 2
      go.sum
  3. 6 3
      importer/importer.go
  4. 5 2
      main.go
  5. 4 0
      reader/blockreader.go
  6. 0 1
      reader/txtreader.go

+ 1 - 1
go.mod

@@ -3,7 +3,7 @@ module git.wecise.com/wecise/cgimport
 go 1.20
 
 require (
-	git.wecise.com/wecise/odb-go v0.0.0-20250208123107-b502a8626316
+	git.wecise.com/wecise/odb-go v0.0.0-20250212072429-c71a97f66859
 	git.wecise.com/wecise/util v0.0.0-20250211130446-7940676f0a44
 	github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13
 	github.com/scylladb/go-set v1.0.3-0.20200225121959-cc7b2070d91e

+ 2 - 2
go.sum

@@ -1,5 +1,5 @@
-git.wecise.com/wecise/odb-go v0.0.0-20250208123107-b502a8626316 h1:4ljPCr2MUA9w3HGRiS4dwYuqKJAbuLBoaho70kO8D8I=
-git.wecise.com/wecise/odb-go v0.0.0-20250208123107-b502a8626316/go.mod h1:0/+7FWRDsMND6k6fgW836IXTYEd1vzOdBuIDEA2FnX8=
+git.wecise.com/wecise/odb-go v0.0.0-20250212072429-c71a97f66859 h1:AVvCMUNkBvaxMh63IGfKaA3Jz1m/WUI7iH4lKeJcZj0=
+git.wecise.com/wecise/odb-go v0.0.0-20250212072429-c71a97f66859/go.mod h1:0T/iXlwXGZTVpSW9GnvRQMa2ucjg1HnVFO2IeHeuMhg=
 git.wecise.com/wecise/util v0.0.0-20250211130446-7940676f0a44 h1:kfzUFxCxLdlhOoBaP0SFYCwvTl6qFOReFnNXZJ5sel4=
 git.wecise.com/wecise/util v0.0.0-20250211130446-7940676f0a44/go.mod h1:9349QCkjPB2gs9a+kCzwHgMtOuf+KovY/2uRkLT4w3A=
 github.com/bluele/gcache v0.0.2 h1:WcbfdXICg7G/DGBh1PFfcirkWOQV+v077yF1pSy3DGw=

+ 6 - 3
importer/importer.go

@@ -27,6 +27,7 @@ var logger = odbc.Logger
 type Importer struct {
 	datapath         string
 	parallel         int
+	rebuild          bool
 	reload           bool
 	importstatus     *CGIStatus
 	fileimportrc     *rc.RoutinesController
@@ -36,11 +37,12 @@ type Importer struct {
 	currentstarttime time.Time
 }
 
-func ImportDir(datapath string, parallel int, reload bool) (totalfilescount, totalrecordscount int64, totalusetime time.Duration, filescount, recordscount int64, usetime time.Duration, err error) {
-	concurlimt := mcfg.GetInt("odbc.concurrent.limit", 50)
+func ImportDir(datapath string, parallel int, rebuild, reload bool) (totalfilescount, totalrecordscount int64, totalusetime time.Duration, filescount, recordscount int64, usetime time.Duration, err error) {
+	concurlimt := mcfg.GetInt("odbc.concurrent.limit", 100)
 	importer := &Importer{
 		datapath:     datapath,
 		parallel:     parallel,
+		rebuild:      rebuild,
 		reload:       reload,
 		importstatus: NewCGIStatus(),
 		fileimportrc: rc.NewRoutinesController("", parallel),
@@ -60,7 +62,8 @@ func (importer *Importer) Import() (totalfilescount, totalrecordscount int64, to
 		if err != nil {
 			return
 		}
-	} else {
+	}
+	if importer.rebuild {
 		// reload
 		// 清除已有类
 		err = importer.odbcimporter.reload()

+ 5 - 2
main.go

@@ -18,10 +18,12 @@ var mcfg = odbc.Config
 var logger = odbc.Logger
 
 func init() {
+	odbc.DefaultAppName = "cgimport"
 	odbc.CommandArgsInfo = func() string {
 		return `
 datapath=data      # 指定数据文件路径
-reload=true        # 重新导入所有数据,不指定则跳过已经导入的文件`
+reload=true        # 重新导入所有数据,不指定则跳过已经导入的文件
+rebuild=true        # 重新构建数据类结构,不指定则保持已有类结构和已有数据不变`
 	}
 }
 func main() {
@@ -36,12 +38,13 @@ func main() {
 	parallel := mcfg.GetInt("parallel", mcfg.GetInt("cgi.parallel", 20))
 	//
 	reload := mcfg.GetBool("reload") || mcfg.GetString("reload") == "reload"
+	rebuild := mcfg.GetBool("rebuild") || mcfg.GetString("rebuild") == "rebuild"
 	//
 	logger.Info("datapath:   ", datapath)
 	logger.Info("parallel:   ", parallel)
 	logger.Info("reload:     ", reload)
 	// 导入
-	totalfilescount, totalrecordscount, totalusetime, filescount, recordscount, usetime, e := importer.ImportDir(datapath, parallel, reload)
+	totalfilescount, totalrecordscount, totalusetime, filescount, recordscount, usetime, e := importer.ImportDir(datapath, parallel, rebuild, reload)
 	if e != nil {
 		logger.Error(e)
 		panic(e)

+ 4 - 0
reader/blockreader.go

@@ -4,10 +4,14 @@ import (
 	"io"
 	"path/filepath"
 
+	"git.wecise.com/wecise/cgimport/odbc"
 	"git.wecise.com/wecise/cgimport/schema"
 	"github.com/wecisecode/util/merrs"
 )
 
+var mcfg = odbc.Config
+var logger = odbc.Logger
+
 type BlockReader interface {
 	ReadBlock() (block map[string]any, line string, linecount int, err error)
 }

+ 0 - 1
reader/txtreader.go

@@ -7,7 +7,6 @@ import (
 	"regexp"
 
 	"git.wecise.com/wecise/cgimport/schema"
-	"git.wecise.com/wecise/util/logger"
 )
 
 type TXTBlockReader struct {