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