slowwildws.go 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. package main
  2. import (
  3. "context"
  4. "flag"
  5. "fmt"
  6. "slowwildws/internal/config"
  7. "slowwildws/internal/handler"
  8. "slowwildws/internal/queue"
  9. "slowwildws/internal/svc"
  10. "github.com/zeromicro/go-zero/core/conf"
  11. "github.com/zeromicro/go-zero/core/service"
  12. "github.com/zeromicro/go-zero/rest"
  13. )
  14. var configFile = flag.String("f", "etc/slowwildws-api.yaml", "the config file")
  15. func main() {
  16. flag.Parse()
  17. var c config.Config
  18. conf.MustLoad(*configFile, &c)
  19. server := rest.MustNewServer(c.RestConf)
  20. defer server.Stop()
  21. ctx := svc.NewServiceContext(c)
  22. handler.RegisterHandlers(server, ctx)
  23. go func(svc *svc.ServiceContext, conf config.Config) {
  24. // 创建消息消费队列
  25. serviceGroup := service.NewServiceGroup()
  26. services := queue.Consumers(conf, context.Background(), svc)
  27. defer serviceGroup.Stop()
  28. for _, server := range services {
  29. serviceGroup.Add(server)
  30. }
  31. fmt.Printf("starting websocket consumer queue server....\n")
  32. serviceGroup.Start()
  33. }(ctx, c)
  34. fmt.Printf("Starting server at %s:%d...\n", c.Host, c.Port)
  35. server.Start()
  36. }