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))
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))
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)