Django

Django Async i ASGI

ASGI vs WSGI, async views, sync_to_async, async_to_sync, ograniczenia synchronicznego ORM, wydajność async, database connection pooling

26 pytań z rozmów·
Senior
1

Jaka jest główna różnica między WSGI a ASGI?

Odpowiedź

ASGI (Asynchronous Server Gateway Interface) rozszerza WSGI o obsługę programowania asynchronicznego oraz trwałych połączeń, takich jak WebSockets. WSGI jest synchroniczne i może obsłużyć tylko jedno żądanie naraz na worker, natomiast ASGI potrafi obsługiwać wiele żądań jednocześnie w jednym procesie dzięki event loop asyncio.

2

Jak zadeklarować async view w Django?

Odpowiedź

Async view w Django deklaruje się po prostu, używając słowa kluczowego async przed def. Django automatycznie wykrywa, czy view jest asynchroniczne, i uruchamia je w odpowiednim event loop. Ta natywna składnia Pythona 3.5+ jest w pełni wspierana od Django 3.1.

3

Jaka jest rola sync_to_async w Django?

Odpowiedź

sync_to_async to adapter dostarczany przez asgiref, który pozwala uruchamiać kod synchroniczny w kontekście asynchronicznym. Opakowuje funkcję synchroniczną i wykonuje ją w osobnym thread pool, zapobiegając blokowaniu event loop. Jest to niezbędne do wywoływania ORM Django z async view, ponieważ ORM jest synchroniczny.

4

Dlaczego ORM Django nie może być używany bezpośrednio w async view?

5

Jaka jest rola async_to_sync w Django?

+23 pytań z rozmów

Opanuj Django na następną rozmowę

Uzyskaj dostęp do wszystkich pytań, flashcards, testów technicznych, ćwiczeń code review i symulatorów rozmów.

Zacznij za darmo