init.go 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. package main
  2. import (
  3. "context"
  4. "fmt"
  5. "github.com/spf13/viper"
  6. "go.uber.org/zap"
  7. "gorm.io/driver/mysql"
  8. "gorm.io/gorm"
  9. "gorm.io/gorm/logger"
  10. "jygit.jydev.jianyu360.cn/data_processing/common_utils/log"
  11. "jygit.jydev.jianyu360.cn/data_processing/common_utils/mongodb"
  12. "os"
  13. "time"
  14. )
  15. var (
  16. MgoB *mongodb.MongodbSim //
  17. MgoQY *mongodb.MongodbSim //
  18. MgoP *mongodb.MongodbSim //
  19. GF GlobalConf
  20. JianyuSubjectDB *gorm.DB
  21. )
  22. func init() {
  23. err := InitConfig()
  24. if err != nil {
  25. fmt.Println("InitConfig err", err)
  26. os.Exit(1)
  27. }
  28. InitLog()
  29. InitMgo()
  30. //InitMysql()
  31. //
  32. }
  33. func InitConfig() (err error) {
  34. viper.SetConfigFile("config.toml") // 指定配置文件路径
  35. viper.SetConfigName("config") // 配置文件名称(无扩展名)
  36. viper.SetConfigType("toml") // 如果配置文件的名称中没有扩展名,则需要配置此项
  37. viper.AddConfigPath("./")
  38. viper.AddConfigPath("./conf/") // 还可以在工作目录中查找配置
  39. viper.AddConfigPath("../conf/") // 还可以在工作目录中查找配置
  40. err = viper.ReadInConfig() // 查找并读取配置文件
  41. if err != nil { // 处理读取配置文件的错误
  42. return
  43. }
  44. err = viper.Unmarshal(&GF)
  45. return err
  46. }
  47. func InitMgo() {
  48. //181 凭安库
  49. //Mgo181 = &mongodb.MongodbSim{
  50. // MongodbAddr: GF.Mongo181.Host,
  51. // Size: 10,
  52. // DbName: GF.Mongo181.DB,
  53. // UserName: GF.Mongo181.Username,
  54. // Password: GF.Mongo181.Password,
  55. // Direct: GF.Mongo181.Direct,
  56. //}
  57. //Mgo181.InitPool()
  58. //85 项目查询
  59. MgoP = &mongodb.MongodbSim{
  60. MongodbAddr: GF.MongoP.Host,
  61. Size: 10,
  62. DbName: GF.MongoP.DB,
  63. UserName: GF.MongoP.Username,
  64. Password: GF.MongoP.Password,
  65. Direct: GF.MongoP.Direct,
  66. }
  67. MgoP.InitPool()
  68. err := MgoP.C.Ping(context.Background(), nil)
  69. if err != nil {
  70. log.Info("InitMgo", zap.Any(GF.MongoP.Host, "链接失败"))
  71. }
  72. //bidding 查询
  73. MgoB = &mongodb.MongodbSim{
  74. MongodbAddr: GF.MongoB.Host,
  75. Size: 10,
  76. DbName: GF.MongoB.DB,
  77. UserName: GF.MongoB.Username,
  78. Password: GF.MongoB.Password,
  79. Direct: GF.MongoB.Direct,
  80. }
  81. MgoB.InitPool()
  82. err = MgoB.C.Ping(context.Background(), nil)
  83. if err != nil {
  84. log.Info("InitMgo", zap.Any(GF.MongoB.Host, "链接失败"))
  85. }
  86. //qyxy_std 查询
  87. MgoQY = &mongodb.MongodbSim{
  88. MongodbAddr: GF.MongoB.Host,
  89. Size: 10,
  90. DbName: "mixdata",
  91. UserName: GF.MongoB.Username,
  92. Password: GF.MongoB.Password,
  93. Direct: GF.MongoB.Direct,
  94. }
  95. MgoQY.InitPool()
  96. }
  97. func InitLog() {
  98. now := time.Now()
  99. err := log.InitLog(
  100. log.Path(GF.Log.LogPath),
  101. log.Level(GF.Log.LogLevel),
  102. log.Compress(GF.Log.Compress),
  103. log.MaxSize(GF.Log.MaxSize),
  104. log.MaxBackups(GF.Log.MaxBackups),
  105. log.MaxAge(GF.Log.MaxAge),
  106. log.Format(GF.Log.Format),
  107. )
  108. if err != nil {
  109. fmt.Printf("InitLog failed: %v\n", err)
  110. os.Exit(1)
  111. }
  112. log.Info("InitLog", zap.Any("duration", time.Since(now).Seconds()))
  113. }
  114. // InitMysql InitMysql
  115. func InitMysql() {
  116. now := time.Now()
  117. username := GF.Mysql.Username
  118. password := GF.Mysql.Password
  119. host := GF.Mysql.Address // 本地
  120. //host := "172.17.162.27:14000" //线上
  121. var err error
  122. dsn3 := fmt.Sprintf("%s:%s@tcp(%s)/%s?charset=utf8mb4&parseTime=True&loc=Local", username, password, host, GF.Mysql.Dbname)
  123. JianyuSubjectDB, err = gorm.Open(mysql.Open(dsn3), &gorm.Config{
  124. Logger: logger.Default.LogMode(logger.Error), //不打印日志
  125. })
  126. if err != nil {
  127. log.Info("InitMysql", zap.String("初始化MySQL", "Jianyu_subjectdb 数据库失败"), zap.Error(err))
  128. return
  129. } else {
  130. log.Info("InitMysql", zap.String("初始化MySQL", "Jianyu_subjectdb 数据库成功"))
  131. }
  132. log.Info("InitMysql", zap.Any("duration", time.Since(now).Seconds()))
  133. }