Django

Django Async y ASGI

ASGI vs WSGI, async views, sync_to_async, async_to_sync, limitaciones del ORM sync, rendimiento async, database connection pooling

26 preguntas de entrevista·
Senior
1

¿Cuál es la principal diferencia entre WSGI y ASGI?

Respuesta

ASGI (Asynchronous Server Gateway Interface) amplía WSGI agregando soporte para programación asíncrona y conexiones persistentes como WebSockets. WSGI es síncrono y solo puede manejar una solicitud a la vez por worker, mientras que ASGI puede gestionar varias solicitudes simultáneamente en un solo proceso gracias al event loop de asyncio.

2

¿Cómo declarar una vista asíncrona en Django?

Respuesta

Una vista asíncrona en Django se declara simplemente usando la palabra clave async antes de def. Django detecta automáticamente si la vista es asíncrona y la ejecuta en el event loop apropiado. Esta sintaxis nativa de Python 3.5+ está totalmente soportada desde Django 3.1.

3

¿Cuál es el papel de sync_to_async en Django?

Respuesta

sync_to_async es un adaptador proporcionado por asgiref que permite ejecutar código síncrono dentro de un contexto asíncrono. Envuelve una función síncrona y la ejecuta en un thread pool separado, evitando así bloquear el event loop. Esto es esencial para llamar al ORM de Django desde una vista async, ya que el ORM es síncrono.

4

¿Por qué no se puede usar el ORM de Django directamente en una vista asíncrona?

5

¿Cuál es el papel de async_to_sync en Django?

+23 preguntas de entrevista

Domina Django para tu próxima entrevista

Accede a todas las preguntas, flashcards, tests técnicos, ejercicios de code review y simuladores de entrevista.

Empieza gratis