main.go 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. package main
  2. import (
  3. "mtp20access/core"
  4. "mtp20access/global"
  5. "mtp20access/initialize"
  6. "go.uber.org/zap"
  7. )
  8. // @title Swagger Example API
  9. // @version 0.0.1
  10. // @description 新接入服务
  11. // @securityDefinitions.apikey ApiKeyAuth
  12. // @in header
  13. // @name x-token
  14. // @BasePath /api
  15. func main() {
  16. // 初始化Viper
  17. global.M2A_VP = core.Viper()
  18. // 初始化zap日志库
  19. global.M2A_LOG = core.Zap()
  20. zap.ReplaceGlobals(global.M2A_LOG)
  21. // 初始化redis服务
  22. initialize.Redis()
  23. // 从redis加载jwt数据
  24. // xorm连接数据库
  25. global.M2A_DB = initialize.XormOracle()
  26. if global.M2A_DB != nil {
  27. // 程序结束前关闭数据库链接
  28. defer global.M2A_DB.DB().Close()
  29. } else {
  30. return
  31. }
  32. // 连接RabbitMQ
  33. global.M2A_RABBITMQ = initialize.RabbitMQ()
  34. if global.M2A_RABBITMQ != nil {
  35. defer global.M2A_RABBITMQ.Connection.Close()
  36. } else {
  37. return
  38. }
  39. // 初始化功能码主题MAP
  40. initialize.InitFuncodeTopic()
  41. // 订阅RabbitMQ回复主题
  42. if err := initialize.RabbitMQSubscribeTopic(); err != nil {
  43. return
  44. }
  45. // 开始接收RabbitMQ信息
  46. initialize.StartRabbitMQReceive()
  47. // 启动Http API 服务
  48. core.RunApiServer()
  49. defer global.M2A_REDIS.Close()
  50. }