@houseme 只能给你发main的代码,程序的代码发不了
var (
    Main = gcmd.Command{
        Name:  "main",
        Usage: "main",
        Brief: "start http server of HotGo!",
        Func: func(ctx context.Context, parser *gcmd.Parser) (err error) {
            if _, err := g.Cfg().Get(ctx, "hotgo.debug"); err != nil {
                g.Log().Fatal(ctx, "配置读取异常:", err, "\r\n你确定 config/config.yaml 文件存在且格式正确吗?\r\n")
            }
            addr, err := g.Cfg().Get(ctx, "jaeger.addr")
            if err != nil {
                g.Log().Fatal(ctx, "配置读取异常:", err, "\r\njaeger配置不正确\r\n")
            }
            serviceName, err := g.Cfg().Get(ctx, "jaeger.service_name")
            if err != nil {
                g.Log().Fatal(ctx, "配置读取异常:", err, "\r\njaeger配置不正确\r\n")
            }
            _, err = jaeger.Init(serviceName.String(), addr.String())
            if err != nil {
                g.Log().Fatal(ctx, err)
            }
            //defer tp.Shutdown(ctx)
            cronVar, err := g.Cfg().Get(ctx, "matomo.cron") //"0 0 */1 * * *" // 一小时执行一次
            if err == nil {
                cronStr := cronVar.String()
                _, err = gcron.Add(ctx, cronStr, func(ctx context.Context) {
                    ctx1 := gctx.New()
                    ctx1, span := gtrace.NewSpan(ctx1, "synchronization")
                    defer span.End()
                    g.Log().Print(ctx1, "浏览量同步定时任务开始")
                    portalService.Market.UpdateProductInfo(ctx1)
                }, "synchronization")
                if err != nil {
                    g.Log().Fatal(ctx, "定时任务启动异常:", err)
                }
            }
            s := g.Server()
            // 错误状态码接管
            s.BindStatusHandler(404, func(r *ghttp.Request) {
                r.Response.Writeln("404 - 你似乎来到了没有知识存在的荒原…")
            })
            s.BindStatusHandler(403, func(r *ghttp.Request) {
                r.Response.Writeln("403 - 网站拒绝显示此网页")
            })
            // 请求结束事件回调
            s.BindHookHandler("/*any", ghttp.HookAfterOutput, hook.Instance().GlobalLog)
            s.Group("/", func(group *ghttp.RouterGroup) {
                // 注册全局中间件
                group.Middleware(
                    middleware.Instance().Ctx, //必须第一个加载
                    middleware.Instance().CORS,
                    middleware.Instance().HandlerResponse,
                )
                // 注册默认首页路由
                group.ALL("/", func(r *ghttp.Request) {
                    r.Response.Write("hello hotGo!!")
                })
                // 注册后台路由
                router.Admin(ctx, group)
                // 注册API路由
                router.Api(ctx, group)
                // 注册编辑器路由
                router.Editor(ctx, group)
                // 注册门户路由
                router.Portal(ctx, group)
                // 注册交易管理路由
                router.Trade(ctx, group)
            })
            // Custom enhance API document.
            enhanceOpenAPIDoc(s)
            // 消息队列
            QueueListen(ctx)
            //阿里云数据监听
            AliyunListen(ctx)
            //定时任务
            enable, err := g.Cfg().Get(ctx, "task.enable")
            if err != nil {
                g.Log().Fatal(ctx, "配置读取异常:", err, "\r\ntask配置不正确\r\n")
            }
            if enable.Bool() {
                StartTask(ctx)
            }
            // Just run the server.
            s.Run()
            return nil
        },
    }
)