init.go 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. package main
  2. import (
  3. "fmt"
  4. "github.com/spf13/viper"
  5. "go.uber.org/zap"
  6. "jygit.jydev.jianyu360.cn/data_processing/common_utils/log"
  7. "jygit.jydev.jianyu360.cn/data_processing/common_utils/mongodb"
  8. "jygit.jydev.jianyu360.cn/data_processing/common_utils/udp"
  9. "os"
  10. "time"
  11. )
  12. var GF GlobalConf
  13. func init() {
  14. err := InitConfig()
  15. if err != nil {
  16. fmt.Println("InitConfig err", err)
  17. os.Exit(1)
  18. }
  19. InitLog()
  20. InitMgo()
  21. loadData() //加载存量芜湖数据
  22. UdpClient = udp.UdpClient{Local: GF.Env.LocalPort, BufSize: 1024}
  23. UdpClient.Listen(processUdpMsg)
  24. log.Info("init", zap.String("LocalPort", GF.Env.LocalPort))
  25. }
  26. //InitConfig 初始化配置文件
  27. func InitConfig() (err error) {
  28. viper.SetConfigFile("config.toml") // 指定配置文件路径
  29. viper.SetConfigName("config") // 配置文件名称(无扩展名)
  30. viper.SetConfigType("toml") // 如果配置文件的名称中没有扩展名,则需要配置此项
  31. viper.AddConfigPath("./")
  32. viper.AddConfigPath("./conf/") // 还可以在工作目录中查找配置
  33. viper.AddConfigPath("../conf/") // 还可以在工作目录中查找配置
  34. err = viper.ReadInConfig() // 查找并读取配置文件
  35. if err != nil { // 处理读取配置文件的错误
  36. return
  37. }
  38. err = viper.Unmarshal(&GF)
  39. return err
  40. }
  41. //InitLog 初始化log
  42. func InitLog() {
  43. now := time.Now()
  44. err := log.InitLog(
  45. log.Path(GF.Log.LogPath),
  46. log.Level(GF.Log.LogLevel),
  47. log.Compress(GF.Log.Compress),
  48. log.MaxSize(GF.Log.MaxSize),
  49. log.MaxBackups(GF.Log.MaxBackups),
  50. log.MaxAge(GF.Log.MaxAge),
  51. log.Format(GF.Log.Format),
  52. )
  53. if err != nil {
  54. fmt.Printf("InitLog failed: %v\n", err)
  55. os.Exit(1)
  56. }
  57. log.Info("InitLog", zap.Any("duration", time.Since(now).Seconds()))
  58. }
  59. //InitMgo 初始化mgo
  60. func InitMgo() {
  61. now := time.Now()
  62. Mgo = &mongodb.MongodbSim{
  63. MongodbAddr: GF.Mongo.Host,
  64. DbName: GF.Mongo.DB,
  65. Size: 10,
  66. UserName: GF.Mongo.Username,
  67. Password: GF.Mongo.Password,
  68. }
  69. Mgo.InitPool()
  70. log.Info("InitMgo", zap.Any("duration", time.Since(now).Seconds()))
  71. }
  72. //loadData 加载芜湖存量企业数据
  73. func loadData() {
  74. now := time.Now()
  75. sess := Mgo.GetMgoConn()
  76. defer Mgo.DestoryMongoConn(sess)
  77. it := sess.DB("mixdata").C("qyxy_wuhu").Find(nil).Iter()
  78. index := 0
  79. for tmp := make(map[string]interface{}); it.Next(&tmp); index++ {
  80. if index%10000 == 0 {
  81. //log.Println(index, tmp["company_name"])
  82. }
  83. name := fmt.Sprint(tmp["company_name"])
  84. tree.Add(name)
  85. tmp = map[string]interface{}{}
  86. }
  87. log.Info("loadData", zap.Any("duration", time.Since(now).Seconds()))
  88. log.Info("loadData", zap.Int("加载芜湖企业存量数据结束", index))
  89. }