1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- package main
- import (
- "context"
- "flag"
- "fmt"
- "os"
- "time"
- "github.com/tal-tech/go-zero/core/conf"
- "github.com/tal-tech/go-zero/zrpc"
- "github.com/zeromicro/zero-examples/graceful/etcd/rpc/graceful"
- "google.golang.org/grpc"
- )
- var configFile = flag.String("f", "etc/config.json", "the config file")
- type GracefulServer struct{}
- func NewGracefulServer() *GracefulServer {
- return &GracefulServer{}
- }
- func (gs *GracefulServer) Grace(ctx context.Context, req *graceful.Request) (*graceful.Response, error) {
- fmt.Println("=>", req)
- time.Sleep(time.Millisecond * 10)
- hostname, err := os.Hostname()
- if err != nil {
- return nil, err
- }
- return &graceful.Response{
- Host: hostname,
- }, nil
- }
- func main() {
- flag.Parse()
- var c zrpc.RpcServerConf
- conf.MustLoad(*configFile, &c)
- server := zrpc.MustNewServer(c, func(grpcServer *grpc.Server) {
- graceful.RegisterGraceServiceServer(grpcServer, NewGracefulServer())
- })
- defer server.Stop()
- server.Start()
- }
|