diff --git a/bin/umbra b/bin/umbra index 63da89d..2a37afd 100755 --- a/bin/umbra +++ b/bin/umbra @@ -26,6 +26,8 @@ if __name__ == "__main__": help='AMQP exchange name') arg_parser.add_argument('--queue', dest='amqp_queue', default='urls', help='AMQP queue to consume urls from') + arg_parser.add_argument('--routing-key', dest='amqp_routing_key', default='urls', + help='AMQP routing key to assign to AMQP queue of urls') arg_parser.add_argument('-n', '--max-browsers', dest='max_browsers', default='1', help='Max number of chrome instances simultaneously browsing pages') arg_parser.add_argument('-v', '--verbose', dest='log_level', @@ -41,7 +43,8 @@ if __name__ == "__main__": controller = umbra.Umbra(args.amqp_url, args.chrome_exe, max_active_browsers=int(args.max_browsers), - exchange_name=args.amqp_exchange, queue_name=args.amqp_queue) + exchange_name=args.amqp_exchange, queue_name=args.amqp_queue, + routing_key=args.amqp_routing_key) def browserdump_str(pp, b): x = [] diff --git a/umbra/controller.py b/umbra/controller.py index b37a588..f5b5d41 100644 --- a/umbra/controller.py +++ b/umbra/controller.py @@ -46,10 +46,11 @@ class AmqpBrowserController: def __init__(self, amqp_url='amqp://guest:guest@localhost:5672/%2f', chrome_exe='chromium-browser', max_active_browsers=1, - queue_name='urls', exchange_name='umbra'): + queue_name='urls', exchange_name='umbra', routing_key='urls'): self.amqp_url = amqp_url self.queue_name = queue_name self.exchange_name = exchange_name + self.routing_key = routing_key self.max_active_browsers = max_active_browsers self._browser_pool = BrowserPool(size=max_active_browsers, chrome_exe=chrome_exe) @@ -153,7 +154,7 @@ class AmqpBrowserController: # reopen the connection every 2.5 hours RECONNECT_AFTER_SECONDS = 150 * 60 - url_queue = kombu.Queue(self.queue_name, exchange=self._exchange) + url_queue = kombu.Queue(self.queue_name, exchange=self._exchange, routing_key=self.routing_key) while not self._consumer_stop.is_set(): try: