def __start_broadcast_send_unconfirmed_block_timer(broadcast_func):
     timer_key = TimerService.TIMER_KEY_BROADCAST_SEND_UNCONFIRMED_BLOCK
     timer_service = ObjectManager().channel_service.timer_service
     timer_service.add_timer(
         timer_key,
         Timer(target=timer_key,
               duration=conf.INTERVAL_BROADCAST_SEND_UNCONFIRMED_BLOCK,
               is_repeat=True,
               is_run_at_start=True,
               callback=broadcast_func))
示例#2
0
    def _start_consensus_timer(self, delay):
        if delay < 0:
            delay = 0

        timer_key = TimerService.TIMER_KEY_BLOCK_GENERATE
        timer_service = ObjectManager().channel_service.timer_service
        timer_service.add_timer(
            timer_key,
            Timer(target=timer_key,
                  duration=delay,
                  is_repeat=False,
                  callback=self.consensus))
示例#3
0
    async def node_ws_PublishHeartbeat(self, **kwargs):
        def _callback(exception):
            self._exception = exception

        timer_key = TimerService.TIMER_KEY_WS_HEARTBEAT
        timer_service = ObjectManager().channel_service.timer_service
        if timer_key in timer_service.timer_list:
            timer_service.reset_timer(timer_key)
        else:
            timer = Timer(target=timer_key,
                          duration=3 * conf.TIMEOUT_FOR_WS_HEARTBEAT,
                          callback=_callback,
                          callback_kwargs={
                              'exception': ConnectionError("No Heartbeat.")
                          })
            timer_service.add_timer(timer_key, timer)