Django

Django Async と ASGI

ASGI と WSGI、async views、sync_to_async、async_to_sync、同期 ORM の制限、async のパフォーマンス、database connection pooling

26 面接問題·
Senior
1

WSGI と ASGI の主な違いは何ですか?

回答

ASGI(Asynchronous Server Gateway Interface)は、非同期プログラミングと WebSockets のような永続的な接続のサポートを追加することで WSGI を拡張します。WSGI は同期的で、worker ごとに一度に 1 つのリクエストしか処理できませんが、ASGI は asyncio の event loop を通じて単一のプロセス内で複数のリクエストを同時に処理できます。

2

Django で async view を宣言するにはどうすればよいですか?

回答

Django の async view は、def の前に async キーワードを付けるだけで宣言できます。Django はそのビューが非同期かどうかを自動的に検出し、適切な event loop で実行します。この Python 3.5 以降のネイティブ構文は、Django 3.1 以降で完全にサポートされています。

3

Django における sync_to_async の役割は何ですか?

回答

sync_to_async は asgiref が提供するアダプタで、非同期コンテキスト内で同期コードを実行できるようにします。同期関数をラップし、別の thread pool で実行することで、event loop のブロックを防ぎます。ORM は同期的であるため、async view から Django の ORM を呼び出すうえで不可欠です。

4

なぜ Django の ORM を async view 内で直接使用できないのですか?

5

Django における async_to_sync の役割は何ですか?

+23 面接問題

次の面接に向けてDjangoをマスター

すべての問題、flashcards、技術テスト、コードレビュー演習、面接シミュレーターにアクセス。

無料で始める