init.go 3.4 KB

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