global.go 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. package global
  2. import (
  3. "eta/eta_email_analysis/config"
  4. "eta/eta_email_analysis/utils"
  5. "fmt"
  6. "github.com/fsnotify/fsnotify"
  7. oplogging "github.com/op/go-logging"
  8. "github.com/spf13/viper"
  9. "gorm.io/gorm"
  10. "io"
  11. )
  12. var (
  13. CONFIG config.Config //配置文件
  14. LOG *oplogging.Logger
  15. FILE_LOG *oplogging.Logger // 自定义的输出日志
  16. MYSQL map[string]*gorm.DB //数据库连接配置
  17. MYSQL_LOG io.Writer
  18. DEFAULT_MYSQL *gorm.DB //默认数据库连接配置
  19. //Redis *redis.Client //redis链接
  20. //Rc *cache.Cache //redis缓存
  21. Rc utils.RedisClient //redis缓存
  22. Re error //redis错误
  23. )
  24. const ConfigFile = "config/config_debug.yaml" //本地(测试)环境下的配置文件地址
  25. const ProConfigFile = "/home/code/config/eta_email_analysis/config/config.yaml" //生产环境下的配置文件地址
  26. func init() {
  27. v := viper.New()
  28. configFilePath := ConfigFile
  29. //如果不存在该配置文件,那么应该是线上环境,那么去寻找线上配置文件的路径
  30. if !utils.FileIsExist(configFilePath) {
  31. configFilePath = ProConfigFile
  32. }
  33. fmt.Println("configFilePath->", configFilePath)
  34. //设置配置文件
  35. v.SetConfigFile(configFilePath)
  36. err := v.ReadInConfig()
  37. if err != nil {
  38. panic(fmt.Errorf("读取配置失败,Err: %s \n", err))
  39. }
  40. //持续监听文件
  41. v.WatchConfig()
  42. v.OnConfigChange(func(e fsnotify.Event) {
  43. fmt.Println("配置文件变更:", e.Name)
  44. handleConfig(v, "配置重赋值")
  45. })
  46. handleConfig(v, "配置初始化")
  47. return
  48. }
  49. // handleConfig
  50. // @Description: 配置文件处理
  51. // @author: Roc
  52. // @datetime 2024-03-13 10:27:40
  53. // @param v *viper.Viper
  54. // @param handleType string
  55. func handleConfig(v *viper.Viper, handleType string) {
  56. if err := v.Unmarshal(&CONFIG); err != nil {
  57. fmt.Println(handleType+"赋值失败,Err:", err)
  58. }
  59. //if CONFIG.Mysql.Binlog.LogSaveDay == 0 {
  60. // CONFIG.Mysql.Binlog.LogSaveDay = 31
  61. //}
  62. //fmt.Println(CONFIG)
  63. //fmt.Println(CONFIG.Mysql.UpdateLogSaveDay)
  64. }