Commit 1538db64 by Oleksandr Barabash

changed input to async

parent 33f28665
...@@ -187,6 +187,34 @@ def stop_server(server: WSClient, packet_logger: PacketLogger, ...@@ -187,6 +187,34 @@ def stop_server(server: WSClient, packet_logger: PacketLogger,
return wr return wr
class KeyboardListener:
""" Fake keyboard listener """
def __init__(self, server: WSClient, packet_logger: PacketLogger,
io_loop: AbstractEventLoop):
self.server = server
self.packet_logger = packet_logger
self.io_loop = io_loop
def start(self):
""" start """
self.io_loop.create_task(self.run())
def stop(self):
""" stop """
stop_server(self.server, self.packet_logger, self.io_loop)(None, None)
# noinspection PyBroadException
async def run(self):
""" routine """
while True:
data = (await self.io_loop.run_in_executor(None, input, ""))
try:
if data.strip().lower() == "q":
return self.stop()
except Exception:
pass
def main(_argv) -> int: def main(_argv) -> int:
""" main """ """ main """
# When main is called, means logging has been changed on the abseil level # When main is called, means logging has been changed on the abseil level
...@@ -205,20 +233,14 @@ def main(_argv) -> int: ...@@ -205,20 +233,14 @@ def main(_argv) -> int:
path="/api/v1/ws-agg", path="/api/v1/ws-agg",
user="kraken", password="kraken", ca_file="./ca.pem", user="kraken", password="kraken", ca_file="./ca.pem",
on_data_handler=on_data_handler(packet_logger)) on_data_handler=on_data_handler(packet_logger))
listener = KeyboardListener(ws_client, packet_logger, io_loop)
ws_client.start() ws_client.start()
listener.start()
signal.signal(signal.SIGINT, stop_server(ws_client, packet_logger, signal.signal(signal.SIGINT, stop_server(ws_client, packet_logger,
io_loop)) io_loop))
signal.signal(signal.SIGTERM, stop_server(ws_client, packet_logger, signal.signal(signal.SIGTERM, stop_server(ws_client, packet_logger,
io_loop)) io_loop))
thread = Thread(target=io_loop.run_forever) io_loop.run_forever()
thread.start()
while True:
data = input()
print(repr(data))
if data.strip().lower() == "q":
stop_server(ws_client, packet_logger, io_loop)(None, None)
thread.join()
break
return 0 return 0
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment