package main import ( "GtDataStore/app/cmd/events/internal/config" "GtDataStore/app/cmd/events/internal/logic/handler" "GtDataStore/app/cmd/events/internal/logic/job" "GtDataStore/app/cmd/events/internal/server" "GtDataStore/app/cmd/events/internal/svc" "GtDataStore/app/cmd/events/pb" "flag" "fmt" "github.com/zeromicro/go-zero/core/conf" "github.com/zeromicro/go-zero/core/service" "github.com/zeromicro/go-zero/zrpc" "google.golang.org/grpc" "google.golang.org/grpc/reflection" "metawant.greentech.com.cn/gaoyagang/gt-common/envitem" ) var configFile = flag.String("f", "etc/events.yaml", "the config file") func main() { flag.Parse() var c config.Config conf.MustLoad(*configFile, &c) ctx := svc.NewServiceContext(c) s := zrpc.MustNewServer(c.RpcServerConf, func(grpcServer *grpc.Server) { pb.RegisterEventsServer(grpcServer, server.NewEventsServer(ctx)) if c.Mode == service.DevMode || c.Mode == service.TestMode { reflection.Register(grpcServer) } }) defer s.Stop() fmt.Printf("Starting rpc server at %s...\n", c.ListenOn) envitem.SetOptions(envitem.Options{GtServerIp: c.GtServerIp, Cache: ctx.Cache}) if c.Mode != "dev" { go func() { defer func() { fmt.Print("async events job stop.....\n") }() // 启动事件识别 fmt.Print("start new job for events.....\n") j := job.NewJob(1, "events-"+c.Mode, ctx, handler.EventHandlerTable, handler.EventIntervalTable) j.Run() }() } // 接收识别到的事件, 处理, 目前只有写入队列(暂时只有redis), 写入数据库 go handler.HandlerEventNotify(ctx) // 处理事件 go func() { // 启动事件监听 eh, _ := handler.NewEventHandler(ctx) eh.Start() }() s.Start() }