code: async def check_record(self, record, timeout=60):
          
          start_time = time.time()
  
          name, rr_data, r_type, ttl = self._extract_record_data(record)
          r_type_code = async_dns.types.get_code(r_type)
  
          resolvable_record = False
          retries = 0
          sleep_time = 5
  
          while not resolvable_record and \
                  timeout > retries * sleep_time:
  
              retries += 1
              resolver_res = await self._resolver.query(name, r_type_code)
              possible_ans = resolver_res.an
  
              resolvable_record = \
                  await self._check_resolver_ans(possible_ans, name,
                                                 rr_data, ttl, r_type_code)
  
              if not resolvable_record:
                  await asyncio.sleep(sleep_time)
  
          if not resolvable_record:
              logging.info(
                  f'Sending metric record-checker-failed: {record}.')
          else:
              final_time = float(time.time() - start_time)
              success_msg = (f'This record: {record} took {final_time} to '
                             'register.')
              logging.info(success_msg)
docs: Measures the time for a DNS record to become available.
  
          Query a provided DNS server multiple times until the reply matches the
          information in the record or until timeout is reached.
  
          Args:
              record (dict): DNS record as a dict with record properties.
              timeout (int): Time threshold to query the DNS server.