MCP Academy · Pelajaran

Alat Asinkron yang Tidak Menghalangi

Gunakan I/O asinkron untuk menangani banyak pemanggilan sekaligus.

Pelajaran 1 dari 413 langkah

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.text

Gunakan 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. 🚀

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 “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

  1. Alat Asinkron yang Tidak Menghalangi
  2. Konkurensi dan Tekanan Balik
  3. Meringkas Hasil yang Menghabiskan Banyak Token
  4. Menskalakan secara Horizontal dengan Sesi
← Kembali ke MCP Academy