@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
},
}
)