init.go 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  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 GF GlobalConf
  15. func InitConfig() (err error) {
  16. viper.SetConfigFile("config.toml") // 指定配置文件路径
  17. viper.SetConfigName("config") // 配置文件名称(无扩展名)
  18. viper.SetConfigType("toml") // 如果配置文件的名称中没有扩展名,则需要配置此项
  19. viper.AddConfigPath("./")
  20. viper.AddConfigPath("./conf/") // 还可以在工作目录中查找配置
  21. viper.AddConfigPath("../conf/") // 还可以在工作目录中查找配置
  22. err = viper.ReadInConfig() // 查找并读取配置文件
  23. if err != nil { // 处理读取配置文件的错误
  24. return
  25. }
  26. err = viper.Unmarshal(&GF)
  27. return err
  28. }
  29. func init() {
  30. err := InitConfig()
  31. if err != nil {
  32. fmt.Println("InitConfig err", err)
  33. os.Exit(1)
  34. }
  35. InitLog()
  36. //InitMgo()
  37. //InitEs()
  38. InitMysql()
  39. //
  40. }
  41. func InitLog() {
  42. now := time.Now()
  43. err := log.InitLog(
  44. log.Path(GF.Log.LogPath),
  45. log.Level(GF.Log.LogLevel),
  46. log.Compress(GF.Log.Compress),
  47. log.MaxSize(GF.Log.MaxSize),
  48. log.MaxBackups(GF.Log.MaxBackups),
  49. log.MaxAge(GF.Log.MaxAge),
  50. log.Format(GF.Log.Format),
  51. )
  52. if err != nil {
  53. fmt.Printf("InitLog failed: %v\n", err)
  54. os.Exit(1)
  55. }
  56. log.Info("InitLog", zap.Any("duration", time.Since(now).Seconds()))
  57. }
  58. func InitMysql() {
  59. now := time.Now()
  60. username := GF.Mysql.Username
  61. password := GF.Mysql.Password
  62. host := GF.Mysql.Address // 本地
  63. //host := "172.17.162.27:14000" //线上
  64. database := GF.Mysql.Dbname
  65. dsn := fmt.Sprintf("%s:%s@tcp(%s)/%s?charset=utf8mb4&parseTime=True&loc=Local", username, password, host, database)
  66. // 连接到数据库
  67. var err error
  68. AnalysisDB, err = gorm.Open(mysql.Open(dsn), &gorm.Config{
  69. Logger: logger.Default.LogMode(logger.Error), //不打印日志
  70. })
  71. if err != nil {
  72. log.Info("InitMysql", zap.String("初始化MySQL", "data_analysis数据库失败"), zap.Error(err))
  73. return
  74. } else {
  75. log.Info("InitMysql", zap.String("初始化MySQL", "data_analysis数据库成功"))
  76. }
  77. dsn2 := fmt.Sprintf("%s:%s@tcp(%s)/%s?charset=utf8mb4&parseTime=True&loc=Local", username, password, host, GF.Mysql.Dbname2)
  78. JianyuDB, err = gorm.Open(mysql.Open(dsn2), &gorm.Config{
  79. Logger: logger.Default.LogMode(logger.Error), //不打印日志
  80. })
  81. if err != nil {
  82. log.Info("InitMysql", zap.String("初始化MySQL", "jianyu 数据库失败"), zap.Error(err))
  83. return
  84. } else {
  85. log.Info("InitMysql", zap.String("初始化MySQL", "jianyu 数据库成功"))
  86. }
  87. dsn3 := fmt.Sprintf("%s:%s@tcp(%s)/%s?charset=utf8mb4&parseTime=True&loc=Local", username, password, host, GF.Mysql.Dbname3)
  88. JianyuSubjectDB, err = gorm.Open(mysql.Open(dsn3), &gorm.Config{
  89. Logger: logger.Default.LogMode(logger.Error), //不打印日志
  90. })
  91. if err != nil {
  92. log.Info("InitMysql", zap.String("初始化MySQL", "Jianyu_subjectdb 数据库失败"), zap.Error(err))
  93. return
  94. } else {
  95. log.Info("InitMysql", zap.String("初始化MySQL", "Jianyu_subjectdb 数据库成功"))
  96. }
  97. log.Info("InitMysql", zap.Any("duration", time.Since(now).Seconds()))
  98. }
  99. //func InitEs() {
  100. // now := time.Now()
  101. // //Es = &elastic.Elastic{
  102. // // //S_esurl: "http://127.0.0.1:19805",
  103. // // S_esurl: GF.EsP.URL,
  104. // // I_size: 5,
  105. // // Username: GF.EsP.Username,
  106. // // Password: GF.EsP.Password,
  107. // //}
  108. // //Es.InitElasticSize()
  109. //
  110. // EsClient, _ = es.NewClient(
  111. // es.SetURL(GF.EsP.URL),
  112. // es.SetBasicAuth(GF.EsP.Username, GF.EsP.Password),
  113. // es.SetSniff(false),
  114. // )
  115. //
  116. // log.Info("InitEs", zap.Any("duration", time.Since(now).Seconds()))
  117. //}
  118. func InitMgo() {
  119. now := time.Now()
  120. Mgo = &mongodb.MongodbSim{
  121. MongodbAddr: GF.Mongob.Host,
  122. DbName: GF.Mongob.DB,
  123. Size: 10,
  124. UserName: GF.Mongob.Username,
  125. Password: GF.Mongob.Password,
  126. }
  127. Mgo.InitPool()
  128. MgoP = &mongodb.MongodbSim{
  129. MongodbAddr: GF.Mongop.Host,
  130. DbName: GF.Mongop.DB,
  131. Size: 10,
  132. UserName: GF.Mongop.Username,
  133. Password: GF.Mongop.Password,
  134. }
  135. MgoP.InitPool()
  136. MgoSpider = &mongodb.MongodbSim{
  137. MongodbAddr: GF.Mongospider.Host,
  138. DbName: GF.Mongospider.DB,
  139. Size: 10,
  140. UserName: GF.Mongospider.Username,
  141. Password: GF.Mongospider.Password,
  142. }
  143. MgoSpider.InitPool()
  144. log.Info("InitMgo", zap.Any("duration", time.Since(now).Seconds()))
  145. }