12345678910111213141516171819202122232425262728293031323334353637 |
- package cmd
- import (
- "context"
- "esproxy/internal/consts"
- "esproxy/internal/service"
- "github.com/gogf/gf/v2/frame/g"
- "github.com/gogf/gf/v2/net/ghttp"
- "github.com/gogf/gf/v2/os/gcmd"
- "time"
- )
- var (
- Main = gcmd.Command{
- Name: "main",
- Usage: "main",
- Brief: "start esProxy http server",
- Func: func(ctx context.Context, parser *gcmd.Parser) (err error) {
- s := g.Server()
- s.Use(service.Middleware)
- s.BindHandler("/*", func(r *ghttp.Request) {
- queryLevel, now := r.GetCtxVar(consts.QueryLevelKey).Int(), time.Now()
- rp, err := service.EsProxyManager.GetProxy(r.Context(), queryLevel)
- r.SetCtxVar(consts.QueryWaitPoolTime, time.Now().Sub(now).Seconds()) //记录等待时长
- if err != nil {
- r.Response.Status = 500
- g.Log().Errorf(r.Context(), "GetProxy Error:%v", err)
- return
- }
- defer service.EsProxyManager.Release(r.Context(), queryLevel)
- rp.ServeHTTP(r.Response.Writer, r.Request)
- })
- s.Run()
- return nil
- },
- }
- )
|