Beispiel #1
0
 def __init__(self,
              nid,
              is_relay=False,
              on_node_down=lambda ref, nid: ref << ('_node_down', nid),
              on_receive=lambda sender_nid, msg_h: print(
                  "deliver", msg_h, "from", sender_nid),
              heartbeat_interval=1.0,
              heartbeat_max_silence=3.0):
     self.nid = nid
     self.is_relay = is_relay
     self._on_node_down = on_node_down
     self._on_receive = on_receive
     self._lock = RLock()
     self._logic = HubLogic(nid,
                            is_relay=is_relay,
                            heartbeat_interval=heartbeat_interval,
                            heartbeat_max_silence=heartbeat_max_silence)
     self._ctx = zmq.Context()
     self._ctx.linger = 0
     self._insock = self._ctx.socket(zmq.ROUTER)
     self._outsock = self._ctx.socket(zmq.ROUTER)
     self._insock.identity = self._outsock.identity = nid
     self._listener_in = spawn(self._listen, self._insock, IN)
     self._listener_in.link_exception(lambda _: self.stop())
     self._listener_out = spawn(self._listen, self._outsock, OUT)
     self._listener_out.link_exception(lambda _: self.stop())
     self._heartbeater = None
     self._watched_nodes = {}
     self._initialized = True
     self._start()
Beispiel #2
0
        self.t += by
        return self.t

    @property
    def current(self):
        return self.t

    def __repr__(self):
        return str(self.t)


def random_bytes():
    return 'random' + str(random.randint(0, 100000))


DEFAULT_LOGIC = lambda: HubLogic('me:123', 1.0, 3.0)
RELAY_LOGIC = lambda: HubLogic('me:123', 1.0, 3.0, is_relay=True)
NID = lambda addr: addr
UNIQUE_NID = lambda addr: addr + '|' + uuid.uudi4().bytes[:8]


def test_empty(t=Time, logic=DEFAULT_LOGIC):
    t, logic = t(), logic()
    # empty
    emits_(logic.heartbeat(t=t.advance(0)), [(NextBeat, 1.0)])


def test_successful_connect(t=Time,
                            logic=DEFAULT_LOGIC,
                            nid=NID('kaamel:123')):
    t, logic = t(), logic()