config.go 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. package config
  2. import (
  3. "log"
  4. "app.yhyue.com/moapp/jybase/mail"
  5. util "app.yhyue.com/moapp/jybase/common"
  6. mg "app.yhyue.com/moapp/jybase/mongodb"
  7. "app.yhyue.com/moapp/jybase/mysql"
  8. "app.yhyue.com/moapp/jybase/redis"
  9. )
  10. type config struct {
  11. Webport string
  12. Webdomain string
  13. Mail *[]mailConf
  14. Mongodb struct {
  15. Main *mgoConf
  16. Log *mgoConf
  17. Ent *mgoConf
  18. }
  19. Elasticsearch struct {
  20. Main *esConf
  21. }
  22. Redis struct {
  23. Main *redisConf
  24. Login *redisConf
  25. }
  26. Mysql struct {
  27. Main *mysqlConf
  28. Push *mysqlConf
  29. }
  30. WorkerNum int
  31. JobNum int
  32. Modular map[string]interface{}
  33. UploadPath string
  34. CatchoutTimesMonth int64
  35. AuthCost float64
  36. TermValidity int
  37. }
  38. type mgoConf struct {
  39. Address string
  40. Size int
  41. DbName string
  42. UserName string
  43. Password string
  44. }
  45. type esConf struct {
  46. Address string
  47. Size int
  48. }
  49. type redisConf struct {
  50. Address string
  51. }
  52. type mysqlConf struct {
  53. DbName string
  54. Address string
  55. UserName string
  56. PassWord string
  57. MaxOpenConns int
  58. MaxIdleConns int
  59. }
  60. type mailConf struct {
  61. Addr string
  62. Port int
  63. Pwd string
  64. User string
  65. }
  66. var (
  67. Sysconfig *config
  68. Mysql *mysql.Mysql
  69. MQFW mg.MongodbSim
  70. Mgo_Log mg.MongodbSim
  71. GmailAuth []*mail.GmailAuth
  72. )
  73. func init() {
  74. util.ReadConfig(&Sysconfig)
  75. if Sysconfig != nil {
  76. //初始化redis
  77. if Sysconfig.Redis.Main != nil {
  78. log.Println("初始化 redis")
  79. redis.InitRedisBySize(Sysconfig.Redis.Main.Address, 100, 30, 300)
  80. }
  81. //
  82. if Sysconfig.Mongodb.Main != nil {
  83. log.Println("初始化 mongodb main")
  84. MQFW = mg.MongodbSim{
  85. MongodbAddr: Sysconfig.Mongodb.Main.Address,
  86. Size: Sysconfig.Mongodb.Main.Size,
  87. DbName: Sysconfig.Mongodb.Main.DbName,
  88. }
  89. MQFW.InitPool()
  90. }
  91. if Sysconfig.Mongodb.Log != nil {
  92. log.Println("初始化 mongodb log")
  93. Mgo_Log = mg.MongodbSim{
  94. MongodbAddr: Sysconfig.Mongodb.Log.Address,
  95. Size: Sysconfig.Mongodb.Log.Size,
  96. DbName: Sysconfig.Mongodb.Log.DbName,
  97. UserName: Sysconfig.Mongodb.Log.UserName,
  98. Password: Sysconfig.Mongodb.Log.Password,
  99. }
  100. Mgo_Log.InitPool()
  101. }
  102. if Sysconfig.Mysql.Main != nil {
  103. log.Println("初始化 mysql")
  104. Mysql = &mysql.Mysql{
  105. Address: Sysconfig.Mysql.Main.Address,
  106. UserName: Sysconfig.Mysql.Main.UserName,
  107. PassWord: Sysconfig.Mysql.Main.PassWord,
  108. DBName: Sysconfig.Mysql.Main.DbName,
  109. MaxOpenConns: Sysconfig.Mysql.Main.MaxOpenConns,
  110. MaxIdleConns: Sysconfig.Mysql.Main.MaxIdleConns,
  111. }
  112. Mysql.Init()
  113. }
  114. //
  115. if Sysconfig.Mail != nil {
  116. log.Println("初始化 Mail")
  117. mailConfigArrMap := Sysconfig.Mail
  118. for _, v := range *mailConfigArrMap {
  119. mail := &mail.GmailAuth{
  120. SmtpHost: v.Addr,
  121. SmtpPort: v.Port,
  122. User: v.User,
  123. Pwd: v.Pwd,
  124. }
  125. GmailAuth = append(GmailAuth, mail)
  126. }
  127. }
  128. }
  129. }