golang 的 rabbitmq 消费项目
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.
 
 
 

72 lignes
1.6 KiB

  1. package cfg
  2. import (
  3. "flag"
  4. "io/ioutil"
  5. "gopkg.in/yaml.v2"
  6. )
  7. //配置文件数据,全局变量
  8. var (
  9. Debug bool
  10. Prd bool
  11. CurlDebug bool
  12. SrvAddr string
  13. RedisAddr string
  14. DB *DBCfg
  15. MQ *MQCfg
  16. ES *ESCfg
  17. Log *LogCfg
  18. ArkID *ArkIDCfg
  19. Admin *AdminCfg
  20. Official *OfficialCfg
  21. WxappletFilepath *WxappletFilepathCfg
  22. Local bool
  23. AppComm *AppCommCfg
  24. MqWorkQueueName string
  25. RabbitMqAddr string
  26. )
  27. //初始化配置文件,将cfg.yml读入到内存
  28. func InitCfg() {
  29. //用指定的名称、默认值、使用信息注册一个string类型flag。
  30. path := flag.String("c", "etc/cfg.yml", "config file")
  31. //解析命令行参数写入注册的flag里。
  32. //解析之后,flag的值可以直接使用。
  33. flag.Parse()
  34. var (
  35. c []byte
  36. err error
  37. conf *Config
  38. )
  39. if c, err = ioutil.ReadFile(*path); err != nil {
  40. panic(err)
  41. }
  42. //yaml.Unmarshal反序列化映射到Config
  43. if err = yaml.Unmarshal(c, &conf); err != nil {
  44. panic(err)
  45. }
  46. //数据读入内存
  47. Prd = conf.Prd
  48. Debug = conf.Debug
  49. Local = conf.Local
  50. CurlDebug = conf.CurlDebug
  51. DB = &conf.DB
  52. Log = &conf.Log
  53. ArkID = &conf.ArkID
  54. RedisAddr = conf.RedisAddr
  55. SrvAddr = conf.SrvAddr
  56. Admin = &conf.Admin
  57. Official = &conf.Official
  58. WxappletFilepath = &conf.WxappletFilepath
  59. AppComm = &conf.AppComm
  60. MqWorkQueueName = conf.MqWorkQueueName
  61. RabbitMqAddr = conf.RabbitMqAddrTest
  62. if conf.Prd {
  63. RabbitMqAddr = conf.RabbitMqAddr
  64. }
  65. MQ = &conf.MQ
  66. ES = &conf.ES
  67. }