123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- package main
- import (
- "fmt"
- "github.com/spf13/viper"
- "go.uber.org/zap"
- "jygit.jydev.jianyu360.cn/data_processing/common_utils/log"
- "jygit.jydev.jianyu360.cn/data_processing/common_utils/mongodb"
- "jygit.jydev.jianyu360.cn/data_processing/common_utils/udp"
- "os"
- "time"
- )
- var GF GlobalConf
- func init() {
- err := InitConfig()
- if err != nil {
- fmt.Println("InitConfig err", err)
- os.Exit(1)
- }
- InitLog()
- InitMgo()
- loadData() //加载存量芜湖数据
- UdpClient = udp.UdpClient{Local: GF.Env.LocalPort, BufSize: 1024}
- UdpClient.Listen(processUdpMsg)
- log.Info("init", zap.String("LocalPort", GF.Env.LocalPort))
- }
- //InitConfig 初始化配置文件
- func InitConfig() (err error) {
- viper.SetConfigFile("config.toml") // 指定配置文件路径
- viper.SetConfigName("config") // 配置文件名称(无扩展名)
- viper.SetConfigType("toml") // 如果配置文件的名称中没有扩展名,则需要配置此项
- viper.AddConfigPath("./")
- viper.AddConfigPath("./conf/") // 还可以在工作目录中查找配置
- viper.AddConfigPath("../conf/") // 还可以在工作目录中查找配置
- err = viper.ReadInConfig() // 查找并读取配置文件
- if err != nil { // 处理读取配置文件的错误
- return
- }
- err = viper.Unmarshal(&GF)
- return err
- }
- //InitLog 初始化log
- func InitLog() {
- now := time.Now()
- err := log.InitLog(
- log.Path(GF.Log.LogPath),
- log.Level(GF.Log.LogLevel),
- log.Compress(GF.Log.Compress),
- log.MaxSize(GF.Log.MaxSize),
- log.MaxBackups(GF.Log.MaxBackups),
- log.MaxAge(GF.Log.MaxAge),
- log.Format(GF.Log.Format),
- )
- if err != nil {
- fmt.Printf("InitLog failed: %v\n", err)
- os.Exit(1)
- }
- log.Info("InitLog", zap.Any("duration", time.Since(now).Seconds()))
- }
- //InitMgo 初始化mgo
- func InitMgo() {
- now := time.Now()
- Mgo = &mongodb.MongodbSim{
- MongodbAddr: GF.Mongo.Host,
- DbName: GF.Mongo.DB,
- Size: 10,
- UserName: GF.Mongo.Username,
- Password: GF.Mongo.Password,
- }
- Mgo.InitPool()
- log.Info("InitMgo", zap.Any("duration", time.Since(now).Seconds()))
- }
- //loadData 加载芜湖存量企业数据
- func loadData() {
- now := time.Now()
- sess := Mgo.GetMgoConn()
- defer Mgo.DestoryMongoConn(sess)
- it := sess.DB("mixdata").C(GF.Env.QyxyColl).Find(nil).Iter()
- index := 0
- for tmp := make(map[string]interface{}); it.Next(&tmp); index++ {
- if index%10000 == 0 {
- //log.Println(index, tmp["company_name"])
- }
- name := fmt.Sprint(tmp["company_name"])
- tree.Add(name)
- tmp = map[string]interface{}{}
- }
- log.Info("loadData", zap.Any("duration", time.Since(now).Seconds()))
- log.Info("loadData", zap.Int("加载芜湖企业存量数据结束", index))
- }
|