1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- package server
- import (
- "flag"
- "gadmin/config"
- "gadmin/internal/admin/data"
- "gadmin/internal/admin/gm_services"
- "gadmin/internal/admin/ws"
- "gadmin/package/gmdata"
- "os"
- "os/signal"
- "path"
- "syscall"
- "github.com/sirupsen/logrus"
- )
- func Start() {
- cfgFile := ".env"
- if config.SysType == "windows" {
- // envFilename = "local.env"
- // go run main.go -c local67.env
- flag.StringVar(&cfgFile, "c", "local.env", "配置环境")
- flag.Parse()
- }
- // 初始化日志,建立与数据库 redis nats etcd等的连接
- config.Init(cfgFile)
- // 兑换码兑换物品处理 world->nats->gadmin
- //gm_services.HandleGMSubscribe(config.GmNats.GetConn())
- // 加载JSON文件
- jsonPath := path.Join(os.Getenv("JSON_PATH"), os.Getenv("JSON_VERSION"))
- if err := gmdata.LoadGraveJson(jsonPath); err != nil {
- logrus.Errorf("gmdata.Load err: %v", err)
- return
- }
- // web页面发送邮件 web -> gadmin-> nats -> world
- //gm_services.EmailCron()
- // 接收从word收到的消息推,准备发送给WEB前端
- go gm_services.ListenRespMsg()
- // web前端和gadmin建立websocket连接 收发消息
- go ws.NotifyBoardCast()
- // 网页服务
- go func() {
- logrus.Infof("服务端口 [%v]", os.Getenv("ADMIN_SERVER_PORT"))
- if err := NewEngine().Run(os.Getenv("ADMIN_SERVER_PORT")); err != nil {
- logrus.Panicf("服务启动失败:%v", err)
- }
- }()
- // 定时发送邮件 和 广播
- cronStart()
- after()
- }
- func after() {
- quit := make(chan os.Signal)
- signal.Notify(quit, syscall.SIGINT, syscall.SIGTERM)
- quantity := <-quit
- logrus.Infoln("收到中断信号:", quantity.String())
- // 保存邮件
- gm_services.SaveEmailDb()
- // 保存通知
- if err := data.SaveToBak(); err != nil {
- logrus.Warnln("SaveToBak err:", err.Error())
- }
- config.CloseGrpcConn()
- logrus.Infoln("已退出")
- }
|