package pubtest import ( "fmt" "os" "stat/common/config" "stat/common/genId" "stat/common/log" "stat/common/mongos" "stat/common/redis" "stat/models" "stat/service/cacheSer" "stat/statg" "time" ) func TestInit(workPath string) error { // 设置时区 time.Local, _ = time.LoadLocation("Asia/Shanghai") // 更换工作目录 pwd, _ := os.Getwd() fmt.Println("开始工作目录", pwd) if err := os.Chdir(workPath); err != nil { return err } // 初始化配置文件 if err := initConfig(); err != nil { return err } // 恢复工作目录 if err := os.Chdir(pwd); err != nil { return err } // 初始化数据库 if err := initMongoDB(); err != nil { return err } // 初始化redis if err := initRedis(); err != nil { return err } // 初始化缓存 cacheSer.Init() // 自增id genId.Start() return nil } func initConfig() error { err := config.LoadJSON("conf/server.json", &statg.Conf) if err != nil { log.Fatal("加载本地配置失败", log.E(err)) return err } // set default value if statg.Conf.Limit.Ip.Capacity <= 0 { statg.Conf.Limit.Ip.Capacity = 300 } if statg.Conf.Limit.Ip.Rate <= 0 { statg.Conf.Limit.Ip.Rate = 5 } statg.Tgbotsend = statg.Conf.TgbotSend return nil } func initMongoDB() error { mgoDB := mongos.NewManager(statg.Conf.Mongo.Url) if err := mgoDB.Connect(); err != nil { log.Error("mgoDB connect err", log.E(err)) return err } mongos.MgoManager = mgoDB // 初始化数据库索引 models.InitIndex() return nil } func initRedis() error { rds, err := redis.NewManagerWithUrl(statg.Conf.Redis.Url, nil) if err != nil { log.Error("rds init err", log.E(err)) return err } redis.StatRds = rds return nil }