package main import ( . "createindex/base" "createindex/des" "createindex/sxlsx" "io/ioutil" g "github.com/gogf/gf/util/gconv" "log" "time" "gopkg.in/yaml.v3" ) var Config = &Cfg{} // 加载配置文件 func LoadConf(file string, cfg any) { bs, err := ioutil.ReadFile(file) if err != nil { log.Fatal("loadcfg", err.Error()) } err = yaml.Unmarshal(bs, cfg) if err != nil { log.Fatal("loadcfg json", err.Error()) } } func main() { LoadConf("./config.yaml", &Config) Run() time.Sleep(30 * time.Minute) } // 运行任务 func Run() { for _, v := range Config.Tasks { NewIdx(v).Task() } } // 初始化任务 func NewIdx(task *Task) *Idx { var s Source var d Direct switch task.Source.Type { case "xlsx": m := task.Source.Data s = sxlsx.GetXlsx(g.String(m["file"]), g.String(m["sheet"]), g.MapStrStr(m["mfields"]), g.Int(m["min"]), g.Int(m["max"])) } switch task.Direct.Type { case "es": m := task.Direct.Data d = des.GetDes(g.String(m["addr"]), g.String(m["user"]), g.String(m["pwd"]), g.String(m["index"]), g.Int(m["size"])) case "tidb": m := task.Direct.Data d = des.GetDTidb(g.String(m["dbName"]), g.String(m["addr"]), g.String(m["user"]), g.String(m["pwd"]), g.String(m["colName"])) } return &Idx{s, d} }