Penutupan Bersih dan Pelepasan Sumber
Tutup kumpulan sambungan dan fail apabila pelayan berhenti.
Penutupan Bersih dan Pelepasan Sumber ialah pelajaran MCP Academy percuma di CoddyKit. Ini ialah pelajaran 4 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran MCP Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus MCP Academy merangkumi sejumlah 4 pelajaran.
Mengapa Penutupan Penting
Sambungan terbuka yang tidak pernah ditutup membocorkan sumber: soket bertimbun, himpunan kekal ditempah dan pangkalan data terus sibuk.
Pengemasan Berada Selepas Yield
Segala-galanya selepas yield dalam lifespan ialah kod penutupan yang berjalan apabila pelayan diarahkan untuk berhenti.
async def lifespan(server):
db = await connect()
yield {"db": db}
await db.close()Tutup Perkara yang Dibuka
Peraturan utama: bagi setiap sumber yang dibuka semasa permulaan, tambahkan close yang sepadan semasa pengemasan supaya tiada apa-apa yang dibiarkan tergantung.
try / finally Menjamin Pelaksanaannya
Bungkus yield dalam try / finally supaya pembersihan tetap berjalan walaupun permintaan ranap di tengah jalan.
async def lifespan(server):
db = await connect()
try:
yield {"db": db}
finally:
await db.close()Selesaikan Kerja yang Sedang Berjalan
Penutupan yang lancar membolehkan panggilan alat yang sedang berjalan selesai sebelum pengemasan, bukannya menarik sokongan daripada bawahnya secara tiba-tiba.
Kosongkan Penimbal Sebelum Menutup
Sesetengah klien menimbal data, jadi kosongkan penimbal penulisan yang belum selesai sebelum menutup untuk mengelakkan bait terakhir yang dihantar daripada hilang.
Tutup Mengikut Urutan Terbalik
Lakukan pengemasan mengikut urutan terbalik daripada cara anda membinanya, supaya sesuatu tidak ditutup ketika perkara yang bergantung padanya masih hidup.
Jangan Tergantung Semasa Keluar
Lindungi pembersihan yang perlahan dengan had masa supaya sambungan yang tersekat tidak menghalang seluruh pelayan daripada ditutup.
Pembersihan Idempoten
Jadikan pengemasan idempoten: menutup sesuatu dua kali sepatutnya tidak memudaratkan, kerana penutupan boleh dicetuskan lebih daripada sekali.
Log Laluan Penutupan
Satu baris log ringkas bagi setiap sumber yang ditutup menukar keluar secara senyap kepada sesuatu yang benar-benar boleh anda nyahpepijat apabila berlaku masalah.
Pengurus Konteks Melakukannya untuk Anda
Membungkus klien dalam async with akan menutupnya secara automatik, membolehkan Python mengurus pelepasan supaya anda menulis kurang kod pembersihan manual.
async def lifespan(server):
async with connect() as db:
yield {"db": db}Semakan Ringkas
Di manakah lifespan meletakkan kod yang melepaskan sumber?
Ringkasan: Penutupan Kemas
Anda melepaskan sumber selepas yield, melindunginya dengan try/finally, menutupnya secara terbalik dan mengelakkan proses tergantung. Kini pelayan Anda dimulakan dan dihentikan dengan kemas. ✅
Pelajari Python dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 30
- Pelajaran
- 120
Soalan Lazim
Adakah pelajaran “Penutupan Bersih dan Pelepasan Sumber” percuma?
Ya — sebanyak 3 pelajaran dalam laluan pembelajaran MCP Academy, termasuk “Penutupan Bersih dan Pelepasan Sumber”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus MCP Academy merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Penutupan Bersih dan Pelepasan Sumber”?
Tutup kumpulan sambungan dan fail apabila pelayan berhenti. Anda berlatih MCP Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan MCP Academy?
Tiada pengalaman terdahulu diperlukan. Pembelajaran MCP Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 4 daripada 4.
Berapa lamakah pelajaran “Penutupan Bersih dan Pelepasan Sumber” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran MCP Academy ini?
Ya. Setiap pelajaran MCP Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Cangkuk Permulaan Kitar Hayat
- Berkongsi Keadaan melalui Konteks Aplikasi
- Mengakses Objek Konteks
- Penutupan Bersih dan Pelepasan Sumber