รวมกลุ่มการเชื่อมต่อในช่วงอายุการใช้งาน
นำไคลเอ็นต์ DB และ HTTP กลับมาใช้ซ้ำระหว่างคำขอ
รวมกลุ่มการเชื่อมต่อในช่วงอายุการใช้งาน เป็นบทเรียน 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- เปิดเผยคำค้น SQL อย่างปลอดภัย
- ห่อ REST API เป็นเครื่องมือ
- รวมกลุ่มการเชื่อมต่อในช่วงอายุการใช้งาน
- แคชและจำกัดอัตราของระบบต้นทาง