Laut BerceritaLaut Bercerita, novel terbaru Leila S. Chudori, bertutur tentang kisah keluarga yang kehilangan, sekumpulan sahabat yang merasakan kekosongan di dada, sekelompok orang yang gemar menyiksa dan lancar berkhianat. Buy |
Django sebagai framework python sejuta umat, sudah cukup di kenal oleh banyak developer sebagai web framework yang handal dengan fitur super lengkap. Dari melimpahnya library dan juga dukungan komunitas yang cukup aktif dan besar ini membuat environment django cukup banyak peminatnya di berbagai negara.
Namun ada satu hal yang kurang memuaskan pada keluarga django versi 2.x dengan tidak adanya fitur asynchron, pada beberapa kasus pengembangan software yang komplek fitur asynchronous sangat diperlukan.
Pada keluarga django versi 3.1 keatas fitur ini sudah tersedia di django framework. Cara penggunaanya pun cukup simple anda tinggal memanggil modul sync_to_async perhatikan penggalan kode dibawah ini :
from asgiref.sync import sync_to_asyncdef _get_blog(pk):
return Blog.objects.select_related('author').get(pk=pk)get_blog = sync_to_async(_get_blog, thread_sensitive=True)
Baca juga artikel lainya :
Ini juga berlaku untuk middleware. Django akan mencoba meminimalkan jumlah konteks antara sinkronisasi dan asinkron. Jika Anda memiliki server ASGI, tetapi semua middleware dan tampilan Anda sinkron, ia hanya akan berpindah satu kali, sebelum memasuki tumpukan middleware.
Namun, jika Anda meletakkan middleware sinkron antara server ASGI dan view asinkron, ia harus beralih ke mode sinkronisasi untuk middleware dan kemudian kembali ke mode asinkron Django juga akan menahan utas sinkronisasi terbuka untuk perambatan pengecualian middleware. Ini mungkin tidak terlihat pada awalnya, tetapi menambahkan penalti satu utas ini per permintaan dapat menghapus keuntungan kinerja asinkron apa pun.
Anda harus melakukan pengujian kinerja Anda sendiri untuk melihat apa pengaruh ASGI versus WSGI pada kode Anda. Dalam beberapa kasus, mungkin ada peningkatan kinerja bahkan untuk basis kode sinkron murni di bawah ASGI karena kode penanganan permintaan masih berjalan secara asinkron. Secara umum Anda hanya perlu mengaktifkan mode ASGI jika Anda memiliki kode asynchronous dalam proyek Anda.
Baca artikel lainya :