async def check_record(self, record, timeout=<NUM_LIT>):
start_time = time.time()<EOL>name, rr_data, r_type, ttl = self._extract_record_data(record)<EOL>r_type_code = async_dns.types.get_code(r_type)<EOL>resolvable_record = False<EOL>retries = <NUM_LIT:0><EOL>sleep_time = <NUM_LIT:5><EOL>while not resolvable_record andtimeout > retries * sleep_time:<EOL><INDENT>retries += <NUM_LIT:1><EOL>resolver_res = await self._resolver.query(name, r_type_code)<EOL>possible_ans = resolver_res.an<EOL>resolvable_record =await self._check_resolver_ans(possible_ans, name,<EOL>rr_data, ttl, r_type_code)<EOL>if not resolvable_record:<EOL><INDENT>await asyncio.sleep(sleep_time)<EOL><DEDENT><DEDENT>if not resolvable_record:<EOL><INDENT>logging.info(<EOL>f'<STR_LIT>')<EOL><DEDENT>else:<EOL><INDENT>final_time = float(time.time() - start_time)<EOL>success_msg = (f'<STR_LIT>'<EOL>'<STR_LIT>')<EOL>logging.info(success_msg)<EOL><DEDENT>
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.