async def discover_peers(self): '''Perform peer maintenance. This includes 1) Forgetting unreachable peers. 2) Verifying connectivity of new peers. 3) Retrying old peers at regular intervals. ''' if self.env.peer_discovery != self.env.PD_ON: self.logger.info('peer discovery is disabled') return self.logger.info(f'beginning peer discovery. Force use of ' f'proxy: {self.env.force_proxy}') forever = Event() async with self.group as group: await group.spawn(forever.wait()) await group.spawn(self._refresh_blacklist()) await group.spawn(self._detect_proxy()) await group.spawn(self._import_peers()) # Consume tasks as they complete, logging unexpected failures async for task in group: if not task.cancelled(): try: task.result() except Exception: self.logger.exception('task failed unexpectedly')
async def discover_peers(self): '''Perform peer maintenance. This includes 1) Forgetting unreachable peers. 2) Verifying connectivity of new peers. 3) Retrying old peers at regular intervals. ''' if self.env.peer_discovery != self.env.PD_ON: self.logger.info('peer discovery is disabled') return self.logger.info(f'beginning peer discovery. Force use of ' f'proxy: {self.env.force_proxy}') forever = Event() async with self.group as group: await group.spawn(forever.wait()) await group.spawn(self._refresh_blacklist()) await group.spawn(self._detect_proxy()) await group.spawn(self._import_peers())