package main import ( "context" "flag" "fmt" "slowwildws/internal/config" "slowwildws/internal/handler" "slowwildws/internal/queue" "slowwildws/internal/svc" "github.com/zeromicro/go-zero/core/conf" "github.com/zeromicro/go-zero/core/service" "github.com/zeromicro/go-zero/rest" ) var configFile = flag.String("f", "etc/slowwildws-api.yaml", "the config file") func main() { flag.Parse() var c config.Config conf.MustLoad(*configFile, &c) server := rest.MustNewServer(c.RestConf) defer server.Stop() ctx := svc.NewServiceContext(c) handler.RegisterHandlers(server, ctx) go func(svc *svc.ServiceContext, conf config.Config) { // 创建消息消费队列 serviceGroup := service.NewServiceGroup() services := queue.Consumers(conf, context.Background(), svc) defer serviceGroup.Stop() for _, server := range services { serviceGroup.Add(server) } fmt.Printf("starting websocket consumer queue server....\n") serviceGroup.Start() }(ctx, c) fmt.Printf("Starting server at %s:%d...\n", c.Host, c.Port) server.Start() }