events.go 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. package main
  2. import (
  3. "GtDataStore/app/cmd/events/internal/logic/handler"
  4. "GtDataStore/app/cmd/events/internal/logic/job"
  5. "GtDataStore/app/cmd/events/internal/server"
  6. "GtDataStore/app/cmd/events/pb"
  7. "flag"
  8. "fmt"
  9. "github.com/zeromicro/go-zero/core/service"
  10. "github.com/zeromicro/go-zero/zrpc"
  11. "google.golang.org/grpc"
  12. "google.golang.org/grpc/reflection"
  13. "metawant.greentech.com.cn/gaoyagang/gt-common/envitem"
  14. "GtDataStore/app/cmd/events/internal/config"
  15. "GtDataStore/app/cmd/events/internal/svc"
  16. "github.com/zeromicro/go-zero/core/conf"
  17. )
  18. var configFile = flag.String("f", "etc/events.yaml", "the config file")
  19. func main() {
  20. flag.Parse()
  21. var c config.Config
  22. conf.MustLoad(*configFile, &c)
  23. ctx := svc.NewServiceContext(c)
  24. s := zrpc.MustNewServer(c.RpcServerConf, func(grpcServer *grpc.Server) {
  25. pb.RegisterEventsServer(grpcServer, server.NewEventsServer(ctx))
  26. if c.Mode == service.DevMode || c.Mode == service.TestMode {
  27. reflection.Register(grpcServer)
  28. }
  29. })
  30. defer s.Stop()
  31. fmt.Printf("Starting rpc server at %s...\n", c.ListenOn)
  32. s.Start()
  33. if c.Mode == "pro" {
  34. envitem.SetOptions(envitem.Options{GtServerIp: c.GtServerIp, Cache: ctx.Cache})
  35. go func() {
  36. defer func() {
  37. fmt.Print("async events job stop.....\n")
  38. }()
  39. // 启动事件识别
  40. fmt.Print("start new job for events.....\n")
  41. j := job.NewJob(1, "events-"+c.Mode, ctx, handler.EventHandlerTable, handler.EventIntervalTable)
  42. j.Run()
  43. }()
  44. }
  45. // 接收识别到的事件, 处理, 目前只有写入队列(暂时只有redis), 写入数据库
  46. _ = handler.HandlerEventNotify(ctx)
  47. }