package main import ( "sync" "91porn-server/common/conf" "91porn-server/common/db" "91porn-server/common/log" "91porn-server/models" "91porn-server/models/Init" "91porn-server/skd/skdg" ) /* 本函数会将mongo库内的video_info数据, audiobook数据, fiction数据写入es 一般在项目部署, 数据导入完成以后运行一次便可 */ func init() { cfg := skdg.GlobalConfig{} log.Info("load config start...") if err := conf.LoadJSON("config/skd.json", &cfg); err != nil { log.Error("startUp get config error: %v", log.E(err)) panic(err) } skdg.Conf = &cfg log.Info("load config end..") log.Init(log.Options{Level: skdg.Conf.Log.Level}) log.Info("daichong conf Domain", log.Any("donmain", skdg.Conf.DaiChong.Domain)) } func main() { ds := db.InitDS(initMongodbParam(models.RegisterPool)) if len(ds) > 0 { for k, v := range ds { switch k { case models.VideoDb: skdg.VideoDB = v case models.LogDb: skdg.LogDB = v case models.StatDb: skdg.StatDB = v } } } skdg.InitElastic() Init.InitMongo() log.Info("所有同步开始") wg := new(sync.WaitGroup) wg.Add(3) go syncAudioBook(wg) go syncVideoInfo(wg) go syncFiction(wg) wg.Wait() log.Info("所有同步结束") } func initMongodbParam(registerPool []models.Register) ([]db.DBmap, []db.Register) { pri := db.DBmap{ Key: models.VideoDb, URL: skdg.Conf.Mongo.VideoDbUrl, } sta := db.DBmap{ Key: models.StatDb, URL: skdg.Conf.Mongo.StatDbUrl, } log := db.DBmap{ Key: models.LogDb, URL: skdg.Conf.Mongo.LogDbUrl, } dbgister := make([]db.Register, len(registerPool)) for i, v := range registerPool { dbgister[i] = db.Register{Key: v.Key, Table: v.Table} } dbmaps := []db.DBmap{pri, sta, log} return dbmaps, dbgister }