package main import ( "fmt" "os" "git.wecise.com/wecise/cgimport/importer" "git.wecise.com/wecise/cgimport/odbc" "github.com/wecisecode/util/mfmt" ) // 获取配置信息 // // 默认配置: // 当前工作目录下 与应用同名的 .conf 文件 // 环境变量 // 命令行参数 var mcfg = odbc.Config var logger = odbc.Logger func init() { odbc.DefaultAppName = "cgimport" odbc.CommandArgsInfo = func() string { return ` datapath=data # 指定数据文件路径 reload=true # 重新导入所有数据,不指定则跳过已经导入的文件 rebuild=true # 重新构建数据类结构,不指定则保持已有类结构和已有数据不变` } } func main() { if mcfg.GetString("help") != "" { fmt.Println(odbc.Usage()) os.Exit(0) } // 配置参数 // 文件目录 datapath := mcfg.GetString("datapath", mcfg.GetString("cgi.datapath", "data")) // 并发数 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("access", odbc.LogFile, "for detail information") logger.Info("datapath: ", datapath) logger.Info("parallel: ", parallel) logger.Info("reload: ", reload) logger.Info("rebuild: ", rebuild) // 导入 totalfilescount, totallinecount, totalrecordscount, totalretrycount, totalusetime, filescount, linescount, recordscount, retrycount, usetime, e := importer.ImportDir(datapath, parallel, rebuild, reload) if e != nil { logger.Error(e) panic(e) } if totalfilescount == 0 { logger.Info(`not found data files in "` + datapath + `"`) return } // 输出统计信息 logger.Info("import", filescount, "files", linescount, "lines", recordscount, "records", retrycount, "retry times", "in", mfmt.FormatDuration(usetime)) logger.Info("total import", totalfilescount, "files", totallinecount, "lines", totalrecordscount, "records", totalretrycount, "retry times", "in", mfmt.FormatDuration(totalusetime)) // 验证 if odbc.ODBCDebug || odbc.LogDebug { importer.Check() } os.Exit(0) }