main.go 1.5 KB

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