gitee.com/quant1x/engine@v1.8.4/cache/cache.go (about)

     1  package cache
     2  
     3  import (
     4  	"gitee.com/quant1x/engine/config"
     5  	"gitee.com/quant1x/gox/logger"
     6  	"gitee.com/quant1x/gox/util/homedir"
     7  	"os"
     8  )
     9  
    10  const (
    11  	// 目录权限
    12  	cacheDirMode os.FileMode = 0755
    13  	// 文件权限
    14  	cacheFileMode os.FileMode = 0644
    15  	// 文件替换模式, 会用到os.TRUNC
    16  	cacheReplace = os.O_CREATE | os.O_RDWR | os.O_TRUNC
    17  	// 更新
    18  	cacheUpdate = os.O_CREATE | os.O_WRONLY
    19  )
    20  
    21  var (
    22  	// 根路径
    23  	cacheRootPath = "~/.quant1x"
    24  	// cacheLogPath 日志路径
    25  	cacheLogPath = cacheRootPath + "/logs"
    26  	// var 路径
    27  	cacheVariablePath = cacheRootPath + "/var"
    28  )
    29  
    30  func init() {
    31  	initCache()
    32  }
    33  
    34  func initCache() {
    35  	// 加载配置文件
    36  	tmpConfig, found := config.LoadConfig()
    37  	// 搜索配置文件
    38  	baseDir := tmpConfig.BaseDir
    39  	if len(baseDir) > 0 {
    40  		__path, err := homedir.Expand(baseDir)
    41  		if err == nil {
    42  			baseDir = __path
    43  		} else {
    44  			logger.Fatalf("%+v", err)
    45  		}
    46  	} else {
    47  		baseDir = cacheRootPath
    48  	}
    49  	// 校验配置文件的路径
    50  	__path, err := homedir.Expand(baseDir)
    51  	if err != nil {
    52  		logger.Fatalf("%+v", err)
    53  	}
    54  	cacheRootPath = __path
    55  	// 创建根路径
    56  	if err := os.MkdirAll(cacheRootPath, cacheDirMode); err != nil {
    57  		logger.Fatalf("%+v", err)
    58  	}
    59  	// 创建日志路径
    60  	cacheLogPath = cacheRootPath + "/logs"
    61  	__logsPath, err := homedir.Expand(cacheLogPath)
    62  	if err != nil {
    63  		logger.Fatalf("%+v", err)
    64  	}
    65  	cacheLogPath = __logsPath
    66  	if err := os.MkdirAll(cacheLogPath, cacheDirMode); err != nil {
    67  		logger.Fatalf("%+v", err)
    68  	}
    69  	logger.InitLogger(cacheLogPath, logger.INFO)
    70  	// 创建var路径
    71  	cacheVariablePath = cacheRootPath + "/var"
    72  	__varPath, err := homedir.Expand(cacheVariablePath)
    73  	if err != nil {
    74  		logger.Fatalf("%+v", err)
    75  	}
    76  	cacheVariablePath = __varPath
    77  	if err := os.MkdirAll(cacheVariablePath, cacheDirMode); err != nil {
    78  		logger.Fatalf("%+v", err)
    79  	}
    80  	// 检查配置文件并加载配置
    81  	if !found {
    82  		config.GlobalConfig = config.ReadConfig(GetRootPath())
    83  	} else {
    84  		config.GlobalConfig = tmpConfig
    85  	}
    86  
    87  	// 启动性能分析
    88  	config.StartPprof()
    89  	initMiniQmt()
    90  }
    91  
    92  // Reset 重置日志记录器
    93  func Reset() {
    94  	initCache()
    95  }
    96  
    97  // GetRootPath 获取缓存根路径
    98  func GetRootPath() string {
    99  	return cacheRootPath
   100  }
   101  
   102  // GetLoggerPath 获取日志路径
   103  func GetLoggerPath() string {
   104  	return cacheLogPath
   105  }
   106  
   107  // GetVariablePath 获取VAR路径
   108  func GetVariablePath() string {
   109  	return cacheVariablePath
   110  }