class QueueMaster: def __init__(self, queue_host, queue_port): self.queues = {} self._client = FanoutClient(self.envelope_received) self._client.connect( queue_host, queue_port ) def get(self, name): return self.queues.setdefault(name, Queue(master=self, name=name)) def envelope_received(self, envelope_data): try: envelope = jsonloads(envelope_data) self.get( envelope['to'] ).envelope_received(envelope) except: traceback.print_exc() def _send_envelope(self, msg): self._client.yell( jsondumps(msg) ) def kill_queue(self, name): try: del self.queues[name] except: pass
def __init__(self, queue_host, queue_port): self.queues = {} self._client = FanoutClient(self.envelope_received) self._client.connect( queue_host, queue_port )