main.go 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. package main
  2. import (
  3. "flag"
  4. "mtp20_assisted/core"
  5. "mtp20_assisted/global"
  6. "mtp20_assisted/service"
  7. "go.uber.org/zap"
  8. )
  9. func main() {
  10. // 初始化Viper
  11. global.M2A_VP = core.Viper()
  12. // 初始化zap日志库
  13. global.M2A_LOG = core.Zap()
  14. zap.ReplaceGlobals(global.M2A_LOG)
  15. // xorm连接数据库
  16. global.M2A_DB = core.XormOracle()
  17. if global.M2A_DB != nil {
  18. // 程序结束前关闭数据库链接
  19. defer global.M2A_DB.DB().Close()
  20. } else {
  21. return
  22. }
  23. // 连接RabbitMQ
  24. global.M2A_RABBITMQ = core.RabbitMQ()
  25. if global.M2A_RABBITMQ != nil {
  26. defer global.M2A_RABBITMQ.Connection.Close()
  27. } else {
  28. return
  29. }
  30. // 构建总线信息处理器
  31. service.InitRabbitMQMsgPreccesser()
  32. // 开始向总线创建和绑定队列
  33. service.StartRabbitMQSubscribe()
  34. // 开始接收总线消息
  35. service.StartRabbitMQReceive()
  36. // 连接FTP
  37. if global.M2A_CONFIG.FTP.Enable {
  38. // 在这里连接FTP可能会在使用时已经断开
  39. // var err error
  40. // if global.M2A_FTP, err = core.FTP(); err == nil {
  41. // defer global.M2A_FTP.Quit()
  42. // }
  43. // 开始FTP Timer任务
  44. service.InitTimer()
  45. }
  46. // 判断输入参数
  47. var ftp bool
  48. flag.BoolVar(&ftp, "ftp", false, "是否立即执行FTP导入工作")
  49. flag.Parse()
  50. if ftp {
  51. service.ImportWMSReckon()
  52. }
  53. // service.ImportWMSReckon()
  54. global.M2A_DONE = make(chan bool)
  55. <-global.M2A_DONE
  56. }