bxbase.go 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. package main
  2. import (
  3. MC "app.yhyue.com/moapp/jybase/common"
  4. "app.yhyue.com/moapp/jybase/endless"
  5. "fmt"
  6. IC "jyBXBase/api/init"
  7. "log"
  8. "net/http"
  9. "os"
  10. "os/signal"
  11. "syscall"
  12. "bp.jydev.jianyu360.cn/BaseService/gateway/core/node"
  13. "github.com/zeromicro/go-zero/rest"
  14. "jyBXBase/api/internal/handler"
  15. "jyBXBase/api/internal/svc"
  16. )
  17. func main() {
  18. //注册代理服务
  19. closeNotify, err := node.NewNode(IC.C.Gateway.Etcd...).Register(IC.C.Gateway.ServerCode, MC.InterfaceToStr(IC.C.Port))
  20. if err != nil {
  21. panic(err)
  22. }
  23. go func() {
  24. err := endless.ListenAndServe(":"+MC.InterfaceToStr(IC.C.Webrpcport), nil, func() {})
  25. if err != nil {
  26. log.Println("ListenAndServe: ", err)
  27. }
  28. }()
  29. ctx := svc.NewServiceContext(IC.C)
  30. server := rest.MustNewServer(IC.C.RestConf)
  31. defer server.Stop()
  32. //全局中间件
  33. server.Use(func(next http.HandlerFunc) http.HandlerFunc {
  34. return func(w http.ResponseWriter, r *http.Request) {
  35. defer func() {
  36. MC.AddMgoLogs(IC.MgoLog, r, IC.C.MgoLogsName, IC.ExcludeUrl, IC.C.MgoLogsCount)
  37. }()
  38. next.ServeHTTP(w, r)
  39. }
  40. })
  41. handler.RegisterHandlers(server, ctx)
  42. fmt.Printf("Starting server at %s:%d...\n", IC.C.Host, IC.C.Port)
  43. server.Start()
  44. quit := make(chan os.Signal, 1)
  45. signal.Notify(quit, syscall.SIGINT, syscall.SIGTERM)
  46. <-quit
  47. closeNotify()
  48. }