Django

Django Async & ASGI

ASGI vs WSGI, async views, sync_to_async, async_to_sync, keterbatasan ORM sync, performa async, database connection pooling

26 pertanyaan wawancara·
Senior
1

Apa perbedaan utama antara WSGI dan ASGI?

Jawaban

ASGI (Asynchronous Server Gateway Interface) memperluas WSGI dengan menambahkan dukungan untuk pemrograman asynchronous dan koneksi persisten seperti WebSockets. WSGI bersifat synchronous dan hanya dapat menangani satu permintaan dalam satu waktu per worker, sedangkan ASGI dapat menangani beberapa permintaan secara bersamaan dalam satu proses melalui event loop asyncio.

2

Bagaimana cara mendeklarasikan async view di Django?

Jawaban

Sebuah async view di Django dideklarasikan cukup dengan menggunakan kata kunci async sebelum def. Django secara otomatis mendeteksi apakah view tersebut asynchronous dan menjalankannya di event loop yang sesuai. Sintaks native Python 3.5+ ini telah didukung penuh sejak Django 3.1.

3

Apa peran sync_to_async di Django?

Jawaban

sync_to_async adalah adapter yang disediakan oleh asgiref yang memungkinkan menjalankan kode synchronous di dalam konteks asynchronous. Ia membungkus sebuah fungsi synchronous dan menjalankannya di thread pool terpisah, sehingga mencegah pemblokiran event loop. Ini penting untuk memanggil ORM Django dari async view karena ORM bersifat synchronous.

4

Mengapa ORM Django tidak bisa digunakan langsung di dalam async view?

5

Apa peran async_to_sync di Django?

+23 pertanyaan wawancara

Kuasai Django untuk wawancara berikutnya

Akses semua pertanyaan, flashcards, tes teknis, latihan code review dan simulator wawancara.

Mulai gratis