MCP Academy · บทเรียน

รวมกลุ่มการเชื่อมต่อในช่วงอายุการใช้งาน

นำไคลเอ็นต์ DB และ HTTP กลับมาใช้ซ้ำระหว่างคำขอ

บทเรียน 3 จาก 413 ขั้นตอน

รวมกลุ่มการเชื่อมต่อในช่วงอายุการใช้งาน เป็นบทเรียน MCP Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน MCP Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส MCP Academy มีบทเรียนทั้งหมด 4 บทเรียน

การเชื่อมต่อใช้เวลา

การเปิดการเชื่อมต่อฐานข้อมูลหรือ HTTP ใหม่ทุกครั้งที่เรียกใช้งานนั้นช้า การจับมือเชื่อมต่อเพิ่มความหน่วง ซึ่งจะสะสมอย่างรวดเร็วเมื่อมีโหลดสูง 🐢

นำกลับมาใช้ด้วยพูล

พูลการเชื่อมต่อจะเก็บชุดการเชื่อมต่อที่ยังใช้งานได้ไว้พร้อม โดยยืมหนึ่งการเชื่อมต่อสำหรับแต่ละคำขอ และรับกลับเมื่อทำงานเสร็จ

สร้างพูลตอนเริ่มต้น

ฮุก lifespan เป็นตำแหน่งที่เหมาะอย่างยิ่ง: สร้างพูลเพียงครั้งเดียวเมื่อเซิร์ฟเวอร์เริ่มทำงาน ก่อนที่เครื่องมือใด ๆ จะทำงาน

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

ส่งคืนเป็นสถานะที่ใช้ร่วมกัน

สิ่งใดก็ตามที่คุณ yield จาก lifespan จะกลายเป็นบริบทที่ใช้ร่วมกัน ดังนั้นตัวจัดการทุกตัวจึงเข้าถึงพูลเดียวกันได้โดยไม่ต้องสร้างใหม่

เข้าถึงผ่านบริบท

ภายในเครื่องมือ ให้ดึงพูลจากบริบทของคำขอ แทนการเปิดการเชื่อมต่อของคุณเองทุกครั้ง

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

ยืม ใช้ ส่งคืน

รับการเชื่อมต่อจากพูล เรียกใช้คำค้นของคุณ แล้วปล่อยให้มันถูกส่งคืนโดยอัตโนมัติ บล็อก with จะจัดการการเบิกใช้และการคืนทรัพยากร

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

จำกัดขนาดพูล

กำหนดขนาดสูงสุดเพื่อให้พูลไม่เปิดการเชื่อมต่อมากกว่าที่ฐานข้อมูลรองรับ แม้จะมีคำขอหลั่งไหลเข้ามา

pool = await create_pool(DSN, max_size=10)

ใช้ไคลเอ็นต์ HTTP ร่วมกันด้วย

แนวคิดเดียวกันนี้ใช้กับ HTTP ได้: สร้างไคลเอ็นต์ httpx หนึ่งตัวใน lifespan แล้วนำกลับมาใช้ เพื่อให้การเชื่อมต่อยังพร้อมใช้งานและอยู่ในพูล

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

พูลปลอดภัยสำหรับหลายเธรด

พูลแบบอะซิงโครนัสที่ดีสร้างมาเพื่อการทำงานพร้อมกัน โดยส่งมอบการเชื่อมต่อให้คำขอจำนวนมากที่กำลังทำงานในเวลาเดียวกันอย่างปลอดภัย

ระวังการรั่วไหล

คืนทุกสิ่งที่คุณยืมมาเสมอ การเชื่อมต่อที่คุณลืมส่งคืนคือการรั่วไหล ซึ่งจะค่อย ๆ ทำให้พูลขาดแคลน จนการเรียกใช้งานหยุดชะงัก

ปิดเมื่อปิดระบบ

หลังจาก yield ของ lifespan ให้closeพูล เพื่อให้การเชื่อมต่อปิดลงอย่างเรียบร้อยเมื่อเซิร์ฟเวอร์หยุดทำงาน

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

ตรวจสอบอย่างรวดเร็ว

คุณสร้างพูลการเชื่อมต่อไว้ที่ใด

สรุป: การใช้พูล

คุณรวมการเชื่อมต่อไว้ใน lifespan: สร้างครั้งเดียว ใช้ร่วมกันผ่านบริบท ยืมเมื่อเรียกใช้งานแต่ละครั้ง และปิดเมื่อปิดระบบ ขั้นต่อไปคือการแคชและจำกัดอัตรา 🎯

เริ่มต้นได้ฟรี

เรียนรู้ Python ด้วย AI tutor — ฟรี

เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป

คอร์ส
30
บทเรียน
120

คำถามที่พบบ่อย

บทเรียน “รวมกลุ่มการเชื่อมต่อในช่วงอายุการใช้งาน” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “รวมกลุ่มการเชื่อมต่อในช่วงอายุการใช้งาน” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส MCP Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส MCP Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “รวมกลุ่มการเชื่อมต่อในช่วงอายุการใช้งาน”

นำไคลเอ็นต์ DB และ HTTP กลับมาใช้ซ้ำระหว่างคำขอ คุณปฏิบัติ MCP Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน MCP Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน MCP Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน

บทเรียน “รวมกลุ่มการเชื่อมต่อในช่วงอายุการใช้งาน” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน MCP Academy นี้ได้ไหม

ได้ บทเรียน MCP Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. เปิดเผยคำค้น SQL อย่างปลอดภัย
  2. ห่อ REST API เป็นเครื่องมือ
  3. รวมกลุ่มการเชื่อมต่อในช่วงอายุการใช้งาน
  4. แคชและจำกัดอัตราของระบบต้นทาง
← กลับไปที่ MCP Academy