Files
2026-05-20 16:13:58 +08:00

94 lines
1.7 KiB
Go

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
}