async-python-patterns
Implementar Patrones Asíncronos de Python
También disponible en: ActiveInferenceInstitute,wshobson
Construye aplicaciones Python de alto rendimiento con patrones asyncio para operaciones de E/S concurrentes, APIs asíncronas y sistemas no bloqueantes.
Descargar el ZIP de la skill
Subir en Claude
Ve a Configuración → Capacidades → Skills → Subir skill
Activa y empieza a usar
Pruébalo
Usando "async-python-patterns". ¿Cómo ejecuto múltiples tareas asíncronas concurrentemente en Python?
Resultado esperado:
Usa asyncio.gather() para ejecutar múltiples co-rutinas concurrentemente. Ejemplo: results = await asyncio.gather(task1(), task2(), task3()). Para el manejo de errores, usa return_exceptions=True para capturar fallos sin detener otras tareas.
Usando "async-python-patterns". ¿Cuál es la diferencia entre asyncio.create_task y asyncio.ensure_future?
Resultado esperado:
create_task() programa una co-rutina para ejecutarse en el bucle de eventos y devuelve una Task (Python 3.7+). ensure_future() acepta tanto co-rutinas como futuros, devolviendo una Task. Usa create_task() para nuevas co-rutinas; usa ensure_future() cuando podrías recibir un futuro existente.
Usando "async-python-patterns". ¿Cómo agrego un tiempo de espera a una operación asíncrona?
Resultado esperado:
Usa asyncio.wait_for() para tiempos de espera simples: await asyncio.wait_for(async_func(), timeout=5.0). Para múltiples operaciones, usa asyncio.wait() con timeout y maneja la excepción 'timeout' en tu bloque try/except.
Auditoría de seguridad
SeguroThis skill is a documentation and educational resource for async Python programming patterns. The static analyzer flagged 71 potential issues, but upon manual review, all findings are FALSE POSITIVES. The 'external_commands' detections are markdown code fences (backticks), 'network' detections are example URLs in documentation, and 'blocker' detections are benign documentation patterns. No actual security risks were found.
Patrones detectados
Puntuación de calidad
Lo que puedes crear
Construir API Web Asíncrona
Crear una API REST de alto rendimiento usando FastAPI con consultas concurrentes a base de datos y endpoints asíncronos
Obtención de Datos Concurrente
Obtener múltiples recursos de API simultáneamente usando asyncio.gather con manejo adecuado de errores y tiempos de espera
Backend de Aplicación en Tiempo Real
Implementar servidores WebSocket y manejo asíncrono de mensajes para sistemas de chat o notificaciones en vivo
Prueba estos prompts
Muéstrame cómo escribir una función async simple en Python que obtenga datos de una URL. Incluye manejo adecuado de errores y un tiempo de espera.
Necesito obtener datos de 5 endpoints de API diferentes concurrentemente. Muéstrame cómo usar asyncio.gather con return_exceptions=True para el manejo de errores.
Crea un gestor de contexto asíncrono que se conecte a una base de datos, produzca una conexión y la cierre adecuadamente al salir. Incluye manejo de errores.
Construye una función asíncrona lista para producción que consulte una base de datos con agrupación de conexiones, implemente lógica de reintento con retroceso exponencial, incluya registro estructurado y maneje la cancelación con gracia.
Mejores prácticas
- Siempre agrega tiempos de espera para prevenir bloqueo indefinido - usa asyncio.wait_for() o asyncio.timeout()
- Usa concurrencia estructurada con asyncio.TaskGroup (Python 3.11+) para limpieza automática
- Maneja las excepciones explícitamente con try/except dentro de funciones async, nunca dejes que las excepciones se propaguen silenciosamente
Evitar
- No uses llamadas sincrónicas bloqueantes dentro de funciones async - esto bloquea todo el bucle de eventos
- Evita 'fire and forget' sin seguimiento adecuado de tareas - almacena referencias Task para habilitar cancelación
- No mezcles await con código bloqueante como time.sleep() - usa asyncio.sleep() en su lugar
Preguntas frecuentes
¿Cuándo debería usar asyncio vs threading?
¿Cómo ejecuto código sincrónico bloqueante en contexto async?
¿Cuál es la diferencia entre gather, create_task y wait?
¿Cómo manejo excepciones en tareas concurrentes?
¿Puedo usar async with fuera de una función async?
¿Cómo depuro código async efectivamente?
Detalles del desarrollador
Autor
sickn33Licencia
MIT
Repositorio
https://github.com/sickn33/antigravity-awesome_skills/tree/main/skills/async-python-patternsRef.
main
Estructura de archivos