...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 package main
16
17 import (
18 "flag"
19 "fmt"
20 "log"
21 "math/rand"
22 "net"
23 "strconv"
24
25 "cloud.google.com/go/pubsub/loadtest"
26 pb "cloud.google.com/go/pubsub/loadtest/pb"
27 "google.golang.org/grpc"
28 )
29
30 func main() {
31 port := flag.Uint("worker_port", 6000, "port to bind worker to")
32 role := flag.String("r", "", "role: pub/sub")
33 flag.Parse()
34
35 var lts pb.LoadtestWorkerServer
36 switch *role {
37 case "pub":
38 lts = &loadtest.PubServer{ID: strconv.Itoa(rand.Int())}
39 case "sub":
40 lts = &loadtest.SubServer{}
41 default:
42 log.Fatalf("unknown role: %q", *role)
43 }
44
45 serv := grpc.NewServer()
46 pb.RegisterLoadtestWorkerServer(serv, lts)
47
48 lis, err := net.Listen("tcp", fmt.Sprintf(":%d", *port))
49 if err != nil {
50 log.Fatalf("failed to listen: %v", err)
51 }
52 serv.Serve(lis)
53 }
54
View as plain text