8 log = logging.getLogger(
"zio")
16 ZIO DOMO command line interface 20 sock_name2type = dict(router=zmq.ROUTER,
26 @cli.command(
'domo-tripping')
27 @click.option(
"--verbose/--no-verbose", default=
False,
28 help=
"Provide extra output")
29 @click.option(
"-n",
"--number", default=10000,
30 help=
"Number of requests")
31 @click.option(
"-f",
"--frontend",
32 type=click.Choice([
"router",
"server"], case_sensitive=
False),
34 help=
"Type name for the front-end socket")
35 @click.option(
"-b",
"--backend",
36 type=click.Choice([
"router",
"server"], case_sensitive=
False),
38 help=
"Type name for the back-end socket")
39 def tripping(verbose, number, frontend, backend):
41 Run the tripping example. The two optinal 45 fes_type = sock_name2type[frontend.lower()]
46 bes_type = sock_name2type[backend.lower()]
47 main(fes_type, bes_type, number, verbose)
50 @cli.command(
'domo-broker')
51 @click.option(
"--verbose/--no-verbose", default=
False,
52 help=
"Provide extra output")
53 @click.option(
"-s",
"--socket",
54 type=click.Choice([
"router",
"server"], case_sensitive=
False),
56 help=
"Type name for socket")
57 @click.option(
"-a",
"--address", default=
"tcp://127.0.0.1:5555")
58 def broker(verbose, socket, address):
63 broker = Broker(sock_name2type[socket], verbose)
67 @cli.command(
'domo-echo-worker')
68 @click.option(
"--verbose/--no-verbose", default=
False,
69 help=
"Provide extra output")
70 @click.option(
"-s",
"--socket",
71 type=click.Choice([
"dealer",
"client"], case_sensitive=
False),
73 help=
"Type name for socket")
74 @click.option(
"-a",
"--address", default=
"tcp://127.0.0.1:5555")
75 def echo(verbose, socket, address):
77 Run a worker providing an echo service 80 worker = Worker(address, b
"echo", sock_name2type[socket], verbose)
83 request = worker.recv(reply)
88 @cli.command(
'domo-echo-client')
89 @click.option(
"--verbose/--no-verbose", default=
False,
90 help=
"Provide extra output")
91 @click.option(
"-s",
"--socket",
92 type=click.Choice([
"dealer",
"client"], case_sensitive=
False),
94 help=
"Type name for socket")
95 @click.option(
"-n",
"--number", default=1,
96 help=
"Number of times to repeat the service request")
97 @click.option(
"-a",
"--address", default=
"tcp://127.0.0.1:5555")
98 @click.argument(
"service")
99 @click.argument(
"args", nargs=-1)
100 def client(verbose, socket, number, address, service, args):
102 Run a client exercising an echo service 105 client = Client(address, sock_name2type[socket], verbose)
107 service = service.encode(
'utf-8')
108 request = [one.encode(
'utf-8')
for one
in args]
109 for scount
in range(number):
112 print(
"send",service,request)
113 client.send(service, request)
114 except KeyboardInterrupt:
116 for rcount
in range(number):
118 reply = client.recv()
119 except KeyboardInterrupt:
126 print(f
'{scount+1} sent, {rcount+1} recv')
def broker(verbose, socket, address)
def echo(verbose, socket, address)
def client(verbose, socket, number, address, service, args)
def tripping(verbose, number, frontend, backend)