config.go 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. package config
  2. import (
  3. . "app.yhyue.com/moapp/jybase/common"
  4. "app.yhyue.com/moapp/jybase/es"
  5. "app.yhyue.com/moapp/jybase/go-xweb/log"
  6. "app.yhyue.com/moapp/jybase/mail"
  7. "gopkg.in/natefinch/lumberjack.v2"
  8. )
  9. // OSSAccount 表示OSS帐号信息
  10. type OSSAccount struct {
  11. ID string `json:"id"`
  12. Endpoint string `json:"endpoint"`
  13. AccessKeyId string `json:"access_key_id"`
  14. AccessKeySecret string `json:"access_key_secret"`
  15. }
  16. // BucketInfo 表示bucket维表数据
  17. type BucketInfo struct {
  18. BucketID string `json:"bucket_id"`
  19. AccountID string `json:"account_id"`
  20. BucketName string `json:"bucket_name"`
  21. }
  22. type PushMail struct {
  23. Addr string `json:"addr"`
  24. Port int `json:"port"`
  25. Pwd string `json:"pwd"`
  26. User string `json:"user"`
  27. MailPoolSize int `json:"mailPoolSize"`
  28. MailReTry int `json:"mailReTry"`
  29. }
  30. // Config 为全局配置结构体
  31. type Config struct {
  32. Port string `json:"port"`
  33. OSSAccounts []OSSAccount `json:"oss_accounts"`
  34. Buckets []BucketInfo `json:"buckets"`
  35. Node struct {
  36. NodeName string `json:"node_name"`
  37. } `json:"node"`
  38. Redis struct {
  39. Address string `json:"address"`
  40. Password string `json:"password"`
  41. } `json:"redis"`
  42. ElasticSearch struct {
  43. Address string `json:"address"`
  44. Size int `json:"size"`
  45. Version string `json:"version"`
  46. UserName string `json:"userName"`
  47. Password string `json:"password"`
  48. IndexName string `json:"indexName"`
  49. } `json:"elasticSearch"`
  50. Email struct {
  51. Mails []*PushMail `json:"mails"`
  52. Title string `json:"title"`
  53. Recipients []string `json:"recipients"`
  54. } `json:"email"`
  55. Weixin struct {
  56. WebhookURL string `json:"webhook_url"`
  57. } `json:"weixin"`
  58. WarnMaxNodeNum int `json:"warnMaxNodeNum"`
  59. WarnInterval int64 `json:"warnInterval"`
  60. Logger *lumberjack.Logger `json:"logger"`
  61. }
  62. var (
  63. AppConfig Config
  64. Gmails []*mail.GmailAuth
  65. )
  66. // LoadConfig 从指定的配置文件中加载配置
  67. func init() {
  68. ReadConfig(&AppConfig)
  69. Gmails = make([]*mail.GmailAuth, len(AppConfig.Email.Mails))
  70. for k, v := range AppConfig.Email.Mails {
  71. Gmails[k] = &mail.GmailAuth{
  72. SmtpHost: v.Addr,
  73. SmtpPort: v.Port,
  74. User: v.User,
  75. Pwd: v.Pwd,
  76. PoolSize: v.MailPoolSize,
  77. ReTry: v.MailReTry,
  78. }
  79. }
  80. log.Println("开始初始化elasticSearch。。。")
  81. es.NewEs(AppConfig.ElasticSearch.Version, AppConfig.ElasticSearch.Address, AppConfig.ElasticSearch.Size, AppConfig.ElasticSearch.UserName, AppConfig.ElasticSearch.Password)
  82. log.Println("初始化elasticSearch结束。。。")
  83. }