Alat Asinkron yang Tidak Menghalangi
Gunakan I/O asinkron untuk menangani banyak pemanggilan sekaligus.
Alat Asinkron yang Tidak Menghalangi adalah pelajaran MCP Academy gratis di CoddyKit. Ini adalah pelajaran 1 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.
Satu Tool Lambat, Semua Orang Menunggu
Jika sebuah tool melakukan pekerjaan lambat secara sinkron, tool tersebut memblokir seluruh server, sehingga setiap panggilan lain harus menunggu gilirannya. ⏳
Sebagian Besar Kelambatan adalah Menunggu
Tool yang memanggil basis data atau API menghabiskan sebagian besar waktunya untuk I/O, hanya menunggu balasan dan bukan menggunakan CPU.
Asinkron Membebaskan Server
Menandai tool sebagai asinkron memungkinkan server menangani permintaan lain selama menunggu, alih-alih menganggur pada satu panggilan.
Tentukan Tool async def
Deklarasikan penangan Anda dengan async def dan FastMCP akan menunggunya, sehingga loop peristiwa dapat melayani pekerjaan lain sementara itu.
@mcp.tool()
async def fetch(city: str) -> str:
...await Panggilan I/O Anda
Di dalam tool asinkron, gunakan await pada pustaka asinkron agar setiap jeda mengembalikan kendali ke loop, bukan membekukannya.
data = await client.get(url)
return data.textGunakan Pustaka Asli-Asinkron
Gunakan klien seperti httpx atau asyncpg. Keduanya dibuat untuk menunggu secara asinkron, berbeda dari pustaka pemblokir yang menghentikan seluruh loop.
Jangan Pernah Memblokir Loop Peristiwa
time.sleep biasa atau loop yang berat memblokir setiap permintaan lain. Dalam kode asinkron, panggilan pemblokir secara diam-diam membekukan server.
Alihkan Pekerjaan CPU yang Berat
Untuk perhitungan CPU yang benar-benar berat, kirim pekerjaan tersebut ke sebuah thread dengan asyncio.to_thread agar loop peristiwa tetap bebas melayani panggilan.
result = await asyncio.to_thread(crunch, data)Jalankan Panggilan secara Bersamaan
Perlu melakukan beberapa fetch sekaligus? asyncio.gather menjalankan awaitable bersama-sama, sehingga selesai jauh lebih cepat daripada menunggu masing-masing secara berurutan.
a, b = await asyncio.gather(get(x), get(y))Tambahkan Timeout pada Await
Bungkus await yang lambat dengan timeout agar satu upstream yang macet tidak dapat menahan permintaan selamanya dan membuat server kehabisan sumber daya.
Asinkron Menskalakan Konkurensi
Dengan I/O asinkron, satu proses dapat menangani banyak panggilan yang sedang berlangsung secara bersamaan, sehingga server Anda tetap responsif di bawah beban nyata.
Pemeriksaan Singkat
Mengapa I/O asinkron membantu server MCP yang sibuk?
Rangkuman: Jangan Memblokir
Anda membuat tool menjadi asinkron, menggunakan await pada I/O, mengalihkan pekerjaan CPU, dan menjalankan panggilan bersama-sama, sehingga satu tool yang lambat tidak lagi membekukan server. 🚀
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 “Alat Asinkron yang Tidak Menghalangi” gratis?
Ya — teks lengkap “Alat Asinkron yang Tidak Menghalangi” 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 “Alat Asinkron yang Tidak Menghalangi”?
Gunakan I/O asinkron untuk menangani banyak pemanggilan sekaligus. 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 1 dari 4.
Berapa lama pelajaran “Alat Asinkron yang Tidak Menghalangi” 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
- Alat Asinkron yang Tidak Menghalangi
- Konkurensi dan Tekanan Balik
- Meringkas Hasil yang Menghabiskan Banyak Token
- Menskalakan secara Horizontal dengan Sesi