resource.go 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. package main
  2. import (
  3. "flag"
  4. "fmt"
  5. "os"
  6. "os/signal"
  7. "syscall"
  8. "bp.jydev.jianyu360.cn/BaseService/gateway/core/node"
  9. "bp.jydev.jianyu360.cn/BaseService/resourceCenter/api/internal/config"
  10. "bp.jydev.jianyu360.cn/BaseService/resourceCenter/api/internal/handler"
  11. "bp.jydev.jianyu360.cn/BaseService/resourceCenter/api/internal/svc"
  12. . "bp.jydev.jianyu360.cn/BaseService/resourceCenter/public/db"
  13. "github.com/zeromicro/go-zero/core/conf"
  14. "github.com/zeromicro/go-zero/core/logx"
  15. "github.com/zeromicro/go-zero/rest"
  16. )
  17. var configFile = flag.String("f", "etc/resource.yaml", "the config file")
  18. func main() {
  19. flag.Parse()
  20. var c config.Config
  21. conf.MustLoad(*configFile, &c)
  22. // logx 根据配置初始化
  23. logx.MustSetup(c.Logx)
  24. //初始化mysql
  25. InitMysql(c.Mysql.BaseService)
  26. ctx := svc.NewServiceContext(c)
  27. server := rest.MustNewServer(c.RestConf)
  28. defer server.Stop()
  29. handler.RegisterHandlers(server, ctx)
  30. fmt.Printf("Starting server at %s:%d...\n", c.Host, c.Port)
  31. closeNotify, err := node.NewNode(c.Etcd.Hosts...).Register(c.Etcd.Key, fmt.Sprint(c.Port))
  32. if err != nil {
  33. panic(err)
  34. }
  35. go func() {
  36. server.Start()
  37. }()
  38. quit := make(chan os.Signal, 1)
  39. signal.Notify(quit, syscall.SIGINT, syscall.SIGTERM)
  40. <-quit
  41. closeNotify()
  42. }