From 93e6ff2638c746cf4d5fdc1198f4666599b51ce3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E6=96=87=E9=9D=99?= <1319697849@qq.com> Date: Mon, 19 May 2025 16:58:49 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=88=E5=B1=8F=E8=94=BD=E6=96=B0=E9=97=BB?= =?UTF-8?q?=E7=9B=B8=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.go | 137 +++++++++++++++++++++++--------------- service/speechNlu/news.go | 5 +- 2 files changed, 84 insertions(+), 58 deletions(-) diff --git a/main.go b/main.go index d913851..2523152 100644 --- a/main.go +++ b/main.go @@ -4,32 +4,26 @@ import ( "errors" "flag" "fmt" + grpc_middleware "github.com/grpc-ecosystem/go-grpc-middleware" + "google.golang.org/grpc" + "google.golang.org/grpc/health/grpc_health_v1" + "google.golang.org/grpc/reflection" "log" "net" "net/url" - "os" - "os/signal" "runtime" - "speech-nlu-parse/service/speechNlu" + "speech-nlu-parse/middleware" + "speech-nlu-parse/pkg/proto" + "speech-nlu-parse/service" "strings" - "syscall" "time" + "gopkg.in/natefinch/lumberjack.v2" "speech-nlu-parse/dao" "speech-nlu-parse/global" - "speech-nlu-parse/middleware" "speech-nlu-parse/pkg/consul" "speech-nlu-parse/pkg/logger" - "speech-nlu-parse/pkg/proto" "speech-nlu-parse/pkg/setting" - "speech-nlu-parse/service" - - grpc_middleware "github.com/grpc-ecosystem/go-grpc-middleware" - - "google.golang.org/grpc" - "google.golang.org/grpc/health/grpc_health_v1" - "google.golang.org/grpc/reflection" - "gopkg.in/natefinch/lumberjack.v2" ) var ( @@ -89,30 +83,71 @@ func setup() error { } func main() { - // 初始化配置 - if err := setup(); err != nil { - log.Fatalf("[FATAL] Setup failed: %v", err) - } - - // 初始化 RabbitMQ 消费者 - consumer, err := speechNlu.NewConsumer( - global.RabbitMqSetting.Url, - global.RabbitMqSetting.ExchangeName, - global.RabbitMqSetting.ExchangeType, - ) + //// 初始化配置 + //if err := setup(); err != nil { + // log.Fatalf("[FATAL] Setup failed: %v", err) + //} + // + //// 初始化 RabbitMQ 消费者 + //consumer, err := speechNlu.NewConsumer( + // global.RabbitMqSetting.Url, + // global.RabbitMqSetting.ExchangeName, + // global.RabbitMqSetting.ExchangeType, + //) + //if err != nil { + // log.Fatalf("[FATAL] Create consumer failed: %v", err) + //} + //defer func() { + // if err := consumer.Shutdown(); err != nil { + // log.Printf("[WARN] Consumer shutdown error: %v", err) + // } + //}() + // + //// 初始化 gRPC + //lis, err := net.Listen("tcp", fmt.Sprintf(":%d", global.ServerSetting.Port)) + //if err != nil { + // log.Fatalf("[FATAL] Listen failed: %v", err) + //} + // + //server := grpc.NewServer( + // grpc.StreamInterceptor(grpc_middleware.ChainStreamServer( + // middleware.StreamGSError500(), + // )), + // grpc.UnaryInterceptor(grpc_middleware.ChainUnaryServer( + // middleware.UnaryGSError500(), + // )), + //) + //proto.RegisterTencentNluServer(server, &service.TencentNlu{}) + //grpc_health_v1.RegisterHealthServer(server, &consul.HealthImpl{}) + //reflection.Register(server) + // + //// 启动 gRPC 服务 + //go func() { + // global.Logger.Info("service is running......") + // if err := server.Serve(lis); err != nil { + // log.Fatalf("[FATAL] gRPC serve error: %v", err) + // } + //}() + // + //// 阻塞等待信号 + //stop := make(chan os.Signal, 1) + //signal.Notify(stop, os.Interrupt, syscall.SIGTERM) + //<-stop + // + //// 优雅关闭 + //log.Println("[INFO] Shutting down...") + //server.GracefulStop() + //log.Println("[INFO] Server stopped") + var err error + // 初始化, 加载配置 + err = setup() if err != nil { - log.Fatalf("[FATAL] Create consumer failed: %v", err) + return } - defer func() { - if err := consumer.Shutdown(); err != nil { - log.Printf("[WARN] Consumer shutdown error: %v", err) - } - }() - // 初始化 gRPC - lis, err := net.Listen("tcp", fmt.Sprintf(":%d", global.ServerSetting.Port)) + lis, err := net.Listen("tcp", fmt.Sprintf(":%v", global.ServerSetting.Port)) if err != nil { - log.Fatalf("[FATAL] Listen failed: %v", err) + log.Fatalf("listen error:%v", err) } server := grpc.NewServer( @@ -124,26 +159,18 @@ func main() { )), ) proto.RegisterTencentNluServer(server, &service.TencentNlu{}) - grpc_health_v1.RegisterHealthServer(server, &consul.HealthImpl{}) - reflection.Register(server) - // 启动 gRPC 服务 - go func() { - global.Logger.Info("service is running......") - if err := server.Serve(lis); err != nil { - log.Fatalf("[FATAL] gRPC serve error: %v", err) - } - }() + _ = consul.RegisterService(global.ServerSetting) //将服务注册到注册中心 + grpc_health_v1.RegisterHealthServer(server, &consul.HealthImpl{}) //执行健康检查 - // 阻塞等待信号 - stop := make(chan os.Signal, 1) - signal.Notify(stop, os.Interrupt, syscall.SIGTERM) - <-stop + reflection.Register(server) //使用grpcurl、grpcui工具需添加该行 + + global.Logger.Info("service is running......") + + if err = server.Serve(lis); err != nil { + log.Fatalf("start service error:%v", err) + } - // 优雅关闭 - log.Println("[INFO] Shutting down...") - server.GracefulStop() - log.Println("[INFO] Server stopped") } func setupFlag() error { @@ -222,10 +249,10 @@ func setupSetting() error { if err != nil { return err } - err = s.ReadSection("RabbitMq", &global.RabbitMqSetting) - if err != nil { - return err - } + //err = s.ReadSection("RabbitMq", &global.RabbitMqSetting) + //if err != nil { + // return err + //} consulUrlParse, err := url.Parse(consulUrl) if err != nil { diff --git a/service/speechNlu/news.go b/service/speechNlu/news.go index ceed3e7..89295fa 100644 --- a/service/speechNlu/news.go +++ b/service/speechNlu/news.go @@ -38,9 +38,8 @@ type FeedBackResp struct { } func FeedBackNews(actionType, duration int, ip, sid, uid string) (*FeedBackResp, error) { - //url := "http://apis.duiopen.com/feedback/letingv4?productId=279629895&apikey=0c74988953dd4ed4bf31955527802cf3&uid=111" - url := global.SpeechSetting.FeedBackUrl + "?productId=" + global.SpeechSetting.ProductId + - "&apikey=" + global.SpeechSetting.ApiKey + "&uid=" + uid + url := "http://apis.duiopen.com/feedback/letingv4?productId=279629895&apikey=0c74988953dd4ed4bf31955527802cf3&uid=111" + //url := global.SpeechSetting.FeedBackUrl + "?productId=" + global.SpeechSetting.ProductId + "&apikey=" + global.SpeechSetting.ApiKey + "&uid=" + uid request := FeedBackReq{ ActionType: actionType, Timestamp: time.Now().Unix(), -- GitLab