From b67d9fadf0ab334ae6e14fe99f89961cb2ba7114 Mon Sep 17 00:00:00 2001 From: Noah Levitt Date: Fri, 23 May 2014 22:30:25 -0700 Subject: [PATCH] log ports chose for browsers, and give threads nice names to make logs easier to understand --- umbra/browser.py | 10 +++++++++- umbra/controller.py | 7 +++++-- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/umbra/browser.py b/umbra/browser.py index 91a89ff..d868782 100644 --- a/umbra/browser.py +++ b/umbra/browser.py @@ -16,6 +16,8 @@ import socket from umbra.behaviors import Behavior class BrowserPool: + logger = logging.getLogger(__module__ + "." + __qualname__) + def __init__(self, size=3, chrome_exe='chromium-browser', chrome_wait=60): self._available = set() @@ -26,6 +28,8 @@ class BrowserPool: self._lock = threading.Lock() + self.logger.info("browser ports: {}".format([browser.chrome_port for (browser, port_holder) in self._available])) + def _grab_random_port(self): """Returns socket bound to some port.""" sock = socket.socket() @@ -80,7 +84,11 @@ class Browser: self.websock = websocket.WebSocketApp(websocket_url, on_open=self._visit_page, on_message=self._handle_message) - websock_thread = threading.Thread(target=self.websock.run_forever, kwargs={'ping_timeout':0.5}) + + import random + threadName = "WebsockThread{}-{}".format(self.chrome_port, + ''.join((random.choice('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789') for _ in range(6)))) + websock_thread = threading.Thread(target=self.websock.run_forever, name=threadName, kwargs={'ping_timeout':0.5}) websock_thread.start() start = time.time() diff --git a/umbra/controller.py b/umbra/controller.py index 8faf0ee..1d40317 100644 --- a/umbra/controller.py +++ b/umbra/controller.py @@ -65,7 +65,7 @@ class AmqpBrowserController: self._producer_conn = kombu.Connection(self.amqp_url) self._producer = self._producer_conn.Producer(serializer='json') - self._amqp_thread = threading.Thread(target=self._consume_amqp) + self._amqp_thread = threading.Thread(target=self._consume_amqp, name='AmqpConsumerThread') self._amqp_stop = threading.Event() self._amqp_thread.start() @@ -139,5 +139,8 @@ class AmqpBrowserController: browser.browse_page(url, on_request=on_request) self._browser_pool.release(browser) - threading.Thread(target=browse_page_async).start() + import random + threadName = "BrowsingThread{}-{}".format(browser.chrome_port, + ''.join((random.choice('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789') for _ in range(6)))) + threading.Thread(target=browse_page_async, name=threadName).start()