cmd.go 867 B

1234567891011121314151617181920212223242526272829303132333435
  1. package cmd
  2. import (
  3. "context"
  4. "esproxy/internal/consts"
  5. "esproxy/internal/service"
  6. "github.com/gogf/gf/v2/frame/g"
  7. "github.com/gogf/gf/v2/net/ghttp"
  8. "github.com/gogf/gf/v2/os/gcmd"
  9. )
  10. var (
  11. Main = gcmd.Command{
  12. Name: "main",
  13. Usage: "main",
  14. Brief: "start esProxy http server",
  15. Func: func(ctx context.Context, parser *gcmd.Parser) (err error) {
  16. s := g.Server()
  17. s.Use(service.Middleware)
  18. s.BindHandler("/*", func(r *ghttp.Request) {
  19. queryLevel := r.GetCtxVar(consts.QueryLevelKey).Int()
  20. rp, err := service.EsProxyManager.GetProxy(r.Context(), queryLevel)
  21. if err != nil {
  22. r.Response.Status = 500
  23. g.Log().Errorf(r.Context(), "GetProxy Error:%v", err)
  24. return
  25. }
  26. defer service.EsProxyManager.Release(r.Context(), queryLevel)
  27. rp.ServeHTTP(r.Response.Writer, r.Request)
  28. })
  29. s.Run()
  30. return nil
  31. },
  32. }
  33. )