Ejemplo n.º 1
0
class Mailbox(object):

    def __init__(self, hub_frontend, hub_backend, loop, name):
        self.hub_backend = hub_backend
        self.hub_frontend = hub_frontend
        self.loop = loop
        self.identity = name if name else str(uuid.uuid1())
        self.inbound = Inbound(self.loop, self.hub_backend, self.identity)
        self.outbound = Outbound(self.loop, self.identity)

    def start(self):
        self.loop.create_task(self.inbound.start())

    def stop(self):
        self.inbound.stop()

    @property
    def pid(self):
        return self.hub_frontend, self.identity

    async def recv(self, timeout=None):
        payload = await self.inbound.recv(timeout=timeout)
        return pickle.loads(payload)

    async def send(self, name_or_pid, *args):
        payload = pickle.dumps(args)
        pid = resolve(name_or_pid)
        await self.outbound.send(pid, payload)
Ejemplo n.º 2
0
 def __init__(self, hub_frontend, hub_backend, loop, name):
     self.hub_backend = hub_backend
     self.hub_frontend = hub_frontend
     self.loop = loop
     self.identity = name if name else str(uuid.uuid1())
     self.inbound = Inbound(self.loop, self.hub_backend, self.identity)
     self.outbound = Outbound(self.loop, self.identity)