From 2a5639a28bdf483098e1be73fb382e4e745803f5 Mon Sep 17 00:00:00 2001 From: dave Date: Mon, 30 Oct 2017 17:08:31 -0700 Subject: [PATCH] Add dockerfile --- Dockerfile | 15 +++++++++++++++ msgbus/server.py | 16 ++-------------- 2 files changed, 17 insertions(+), 14 deletions(-) create mode 100644 Dockerfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..0c6681c --- /dev/null +++ b/Dockerfile @@ -0,0 +1,15 @@ +FROM ubuntu:artful + +RUN apt-get update && \ + apt-get install -y python3-setuptools python3-pip + +ADD . /tmp/msgbus/ + +RUN pip3 install pyzmq==16.0.2 && \ + cd /tmp/msgbus/ ; python3 setup.py install + +USER nobody + +EXPOSE 7000 7001 + +ENTRYPOINT ["mbusd"] diff --git a/msgbus/server.py b/msgbus/server.py index da0d518..acc1343 100644 --- a/msgbus/server.py +++ b/msgbus/server.py @@ -5,21 +5,9 @@ import zmq.asyncio from contextlib import closing from random import randint import signal -from concurrent.futures import CancelledError zmq.asyncio.install() -def exewrap(func): - async def wrapped(*args, **kwargs): - try: - await func(*args, **kwargs) - except: - print("EXCEPTIN") - import traceback - traceback.print_exc() - return wrapped - - class MsgBusServerPeer(object): __slots__ = ["alive", "server", "name", "pub_port", "sub_port", "bind", "protocol", "sub_sock", "sub_sock_addr", @@ -161,7 +149,6 @@ class MsgBusServer(object): self.peer_monitor(), self.stats_monitor()], loop=self.loop) - @exewrap async def stats_monitor(self): """ Print out stats on an interval (messages/s etc) @@ -226,6 +213,7 @@ class MsgBusServer(object): with closing(self.ctx.socket(zmq.SUB)) as peer_pub_socket: peer_pub_socket.connect(peer_pub_addr) peer_pub_socket.subscribe(b'__msgbus_meta') + async def wait_for_cmd(cmd_name, timeout=10): start = time() while time() - start < timeout: @@ -257,7 +245,7 @@ class MsgBusServer(object): peer_response = await wait_for_cmd("__peer_response") if peer_response: # print("got peer resp: ", peer_response) - name, _ = peer_response.split(" ", 1) + name, _ = peer_response.split(" ", 1) if name == self.name: break await asyncio.sleep(1)