main.go 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. package main
  2. import (
  3. . "createindex/base"
  4. "createindex/des"
  5. "createindex/sxlsx"
  6. "io/ioutil"
  7. g "github.com/gogf/gf/util/gconv"
  8. "log"
  9. "time"
  10. "gopkg.in/yaml.v3"
  11. )
  12. var Config = &Cfg{}
  13. // 加载配置文件
  14. func LoadConf(file string, cfg any) {
  15. bs, err := ioutil.ReadFile(file)
  16. if err != nil {
  17. log.Fatal("loadcfg", err.Error())
  18. }
  19. err = yaml.Unmarshal(bs, cfg)
  20. if err != nil {
  21. log.Fatal("loadcfg json", err.Error())
  22. }
  23. }
  24. func main() {
  25. LoadConf("./config.yaml", &Config)
  26. Run()
  27. time.Sleep(30 * time.Minute)
  28. }
  29. // 运行任务
  30. func Run() {
  31. for _, v := range Config.Tasks {
  32. NewIdx(v).Task()
  33. }
  34. }
  35. // 初始化任务
  36. func NewIdx(task *Task) *Idx {
  37. var s Source
  38. var d Direct
  39. switch task.Source.Type {
  40. case "xlsx":
  41. m := task.Source.Data
  42. s = sxlsx.GetXlsx(g.String(m["file"]), g.String(m["sheet"]), g.MapStrStr(m["mfields"]), g.Int(m["min"]), g.Int(m["max"]))
  43. }
  44. switch task.Direct.Type {
  45. case "es":
  46. m := task.Direct.Data
  47. d = des.GetDes(g.String(m["addr"]), g.String(m["user"]), g.String(m["pwd"]), g.String(m["index"]), g.Int(m["size"]))
  48. case "tidb":
  49. m := task.Direct.Data
  50. d = des.GetDTidb(g.String(m["dbName"]), g.String(m["addr"]), g.String(m["user"]), g.String(m["pwd"]), g.String(m["colName"]))
  51. }
  52. return &Idx{s, d}
  53. }