78 lines
1.7 KiB
Go
78 lines
1.7 KiB
Go
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
|
|
}
|