MCP Academy · Pelajaran

Mengumpulkan Koneksi dalam Lifespan

Gunakan kembali klien DB dan HTTP di antara permintaan.

Pelajaran 3 dari 413 langkah

Mengumpulkan Koneksi dalam Lifespan adalah pelajaran MCP Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar MCP Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus MCP Academy mencakup 4 pelajaran total.

Menghubungkan Memerlukan Waktu

Membuka koneksi basis data atau HTTP baru pada setiap pemanggilan itu lambat. Proses jabat tangan menambah latensi yang meningkat pesat saat beban bertambah. 🐢

Gunakan Kembali dengan Kumpulan

Sebuah kumpulan koneksi menyimpan sekumpulan koneksi aktif yang siap digunakan, meminjamkan satu koneksi untuk setiap permintaan dan mengambilnya kembali setelah pekerjaan selesai.

Bangun Kumpulan Saat Startup

Pengait masa hidup adalah tempat yang tepat: buat kumpulan sekali saat server dimulai, sebelum alat apa pun dijalankan.

@asynccontextmanager
async def lifespan(server):
    pool = await create_pool(DSN)
    yield {"pool": pool}

Hasilkan sebagai Status Bersama

Apa pun yang Anda hasilkan dari masa hidup akan menjadi konteks bersama, sehingga setiap penangan dapat mengakses kumpulan yang sama tanpa membuatnya lagi.

Akses melalui Konteks

Di dalam alat, ambil kumpulan dari konteks permintaan, alih-alih membuka koneksi sendiri setiap kali.

pool = ctx.request_context.lifespan_context["pool"]

Pinjam, Gunakan, Kembalikan

Gunakan acquire untuk mengambil koneksi dari kumpulan, jalankan kueri Anda, lalu biarkan koneksi itu dikembalikan secara otomatis. Blok with menangani pengambilan dan pelepasan.

async with pool.acquire() as conn:
    rows = await conn.fetch(sql)

Batasi Ukuran Kumpulan

Tetapkan ukuran maksimum agar kumpulan tidak pernah membuka koneksi melebihi kemampuan basis data Anda, bahkan ketika banyak pemanggilan masuk bersamaan.

pool = await create_pool(DSN, max_size=10)

Bagikan Klien HTTP Juga

Gagasan yang sama berlaku untuk HTTP: buat satu klien httpx dalam masa hidup dan gunakan kembali agar koneksi tetap hangat dan berada dalam kumpulan.

client = httpx.AsyncClient()
yield {"http": client}

Kumpulan Aman untuk Banyak Utas

Kumpulan asinkron yang baik dirancang untuk konkurensi, sehingga dapat memberikan koneksi dengan aman kepada banyak permintaan yang berjalan bersamaan.

Waspadai Kebocoran

Selalu lepaskan apa yang Anda pinjam. Koneksi yang lupa Anda kembalikan adalah kebocoran yang perlahan menguras kumpulan hingga pemanggilan berhenti.

Tutup Saat Shutdown

Setelah menghasilkan dari masa hidup, gunakan close pada kumpulan agar koneksi ditutup dengan bersih saat server berhenti.

    yield {"pool": pool}
    await pool.close()

Pemeriksaan Singkat

Di mana Anda membuat kumpulan koneksi?

Ringkasan: Penggunaan Kumpulan

Anda menggunakan kumpulan koneksi dalam masa hidup: buat sekali, bagikan melalui konteks, pinjam pada setiap pemanggilan, dan tutup saat shutdown. Berikutnya, lakukan penyimpanan sementara dan pembatasan laju. 🎯

Gratis untuk memulai

Belajar Python dengan tutor AI — gratis

Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.

Kursus
30
Pelajaran
120

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Mengumpulkan Koneksi dalam Lifespan” gratis?

Ya — teks lengkap “Mengumpulkan Koneksi dalam Lifespan” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus MCP Academy, upgrade ke CoddyKit PRO. Kursus MCP Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Mengumpulkan Koneksi dalam Lifespan”?

Gunakan kembali klien DB dan HTTP di antara permintaan. Kamu berlatih MCP Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai MCP Academy?

Tidak diperlukan pengalaman sebelumnya. MCP Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.

Berapa lama pelajaran “Mengumpulkan Koneksi dalam Lifespan” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran MCP Academy ini?

Ya. Setiap pelajaran MCP Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Menyediakan Kueri SQL dengan Aman
  2. Membungkus API REST sebagai Alat
  3. Mengumpulkan Koneksi dalam Lifespan
  4. Menyimpan Cache dan Membatasi Laju Upstream
← Kembali ke MCP Academy