typestar

Timeouts asíncronos en Python

Acotar cuánto tiempo puede tardar un await.

import asyncio


async def consulta_lenta():
    await asyncio.sleep(10)
    return "filas"


async def principal():
    try:
        return await asyncio.wait_for(consulta_lenta(), timeout=0.2)
    except TimeoutError:
        return "me rendí"


resultado = asyncio.run(principal())

Cómo funciona

  1. wait_for cancela la corrutina después de timeout.
  2. Un TimeoutError avisa que tardó demasiado.
  3. El manejador devuelve un valor de repuesto en su lugar.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
16
Caracteres a escribir
252
Tokens
58
Ritmo de tres estrellas
105 tpm

Al ritmo de tres estrellas de 105 tokens por minuto, este intento toma unos 33 segundos.

Escribe este fragmento

Paso 3 de 4 en Async; paso 26 de 53 en Python pythónico.

← Anterior Siguiente →