ฮุกเริ่มต้นระบบตามอายุการใช้งาน
เปิดการเชื่อมต่อเพียงครั้งเดียวเมื่อเซิร์ฟเวอร์เริ่มทำงาน
ฮุกเริ่มต้นระบบตามอายุการใช้งาน เป็นบทเรียน MCP Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน MCP Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส MCP Academy มีบทเรียนทั้งหมด 4 บทเรียน
เริ่มต้นครั้งเดียว ใช้ได้หลายครั้ง
การตั้งค่าบางอย่างควรทำ เพียงครั้งเดียว เมื่อเซิร์ฟเวอร์เริ่มทำงาน เช่น การเปิดการเชื่อมต่อฐานข้อมูล ไม่ใช่ทำใหม่ทุกครั้งที่เรียกเครื่องมือ 🚀
ทำความรู้จัก lifespan
lifespan คือฮุกที่เรียกใช้โค้ดเริ่มต้นก่อนมีคำขอเข้ามา จากนั้นจึงเรียกใช้โค้ดเก็บกวาดหลังเซิร์ฟเวอร์หยุดทำงาน
ตัวจัดการบริบทแบบอะซิงโครนัส
lifespan คือตัวจัดการบริบทแบบอะซิงโครนัส: โค้ดก่อน yield คือโค้ดเริ่มต้น และโค้ดหลัง yield คือโค้ดปิดการทำงาน
from contextlib import asynccontextmanager
@asynccontextmanager
async def lifespan(server):
# startup
yield
# shutdownเชื่อมเข้ากับ FastMCP
คุณส่ง lifespan ให้เซิร์ฟเวอร์ผ่านอาร์กิวเมนต์ lifespan เพื่อให้ FastMCP ทราบว่าต้องเรียกใช้ lifespan ตลอดช่วงอายุการทำงานของเซิร์ฟเวอร์
from mcp.server.fastmcp import FastMCP
mcp = FastMCP("demo", lifespan=lifespan)เปิดสิ่งที่ใช้ทรัพยากรมากที่นี่
บล็อกเริ่มต้นเหมาะสำหรับ การตั้งค่าที่ใช้ทรัพยากรมาก เช่น กลุ่มการเชื่อมต่อฐานข้อมูล ไคลเอ็นต์ HTTP หรือการโหลดโมเดลเข้าสู่หน่วยความจำ
ส่งคืนสถานะที่ใช้ร่วมกัน
สิ่งใดก็ตามที่คุณ yield จะกลายเป็นบริบทที่ใช้ร่วมกันสำหรับทุกคำขอ ดังนั้นให้สร้างเพียงครั้งเดียวแล้วส่งต่อไป
async def lifespan(server):
db = await connect_db()
yield {"db": db}การเริ่มต้นทำงานก่อนเครื่องมือใด ๆ
FastMCP รับประกันว่า การเริ่มต้น ของคุณจะเสร็จสิ้นก่อนรับการเรียกเครื่องมือครั้งแรก เพื่อให้ทรัพยากรพร้อมใช้งานได้ทันเวลา
บริบทแบบมีชนิดข้อมูลก็ได้
คุณสามารถส่งคืน dataclass ขนาดเล็กแทนพจนานุกรม เพื่อให้เข้าถึงอ็อบเจ็กต์ที่ใช้ร่วมกันได้แบบมีชนิดข้อมูลและมีคำแนะนำเติมข้อความอัตโนมัติ
from dataclasses import dataclass
@dataclass
class AppCtx:
db: objectทำให้การเริ่มต้นรวดเร็ว
ไคลเอ็นต์ต้องรอการเริ่มต้น ดังนั้นควรทำให้ขั้นตอนนี้ กระชับ: เชื่อมต่อเฉพาะสิ่งที่จำเป็น และเลื่อนงานเสริมที่ใช้เวลานานไปจนกว่าจะมีการใช้งานครั้งแรก
หนึ่ง lifespan ต่อหนึ่งเซิร์ฟเวอร์
เซิร์ฟเวอร์หนึ่งเครื่องมี lifespan ได้ เพียงหนึ่งรายการ ให้รวมตรรกะการเริ่มต้นทั้งหมดไว้ภายใน lifespan แทนการกระจายการตั้งค่าไปตามเครื่องมือต่าง ๆ
จัดการความล้มเหลวระหว่างเริ่มต้น
หากการเริ่มต้นทำให้เกิดข้อผิดพลาด เซิร์ฟเวอร์ควร ปฏิเสธการเริ่มทำงาน แทนที่จะทำงานต่อทั้งที่ตั้งค่าไม่ครบ แล้วล้มเหลวอย่างไร้สาเหตุในภายหลัง
ตรวจสอบอย่างรวดเร็ว
ใน lifespan โค้ดเริ่มต้นอยู่ตำแหน่งใดเมื่อเทียบกับ yield
สรุป: ฮุก lifespan
คุณได้เรียนรู้เกี่ยวกับ lifespan ซึ่งเป็นตัวจัดการบริบทแบบอะซิงโครนัสที่เรียกใช้การตั้งค่าก่อน yield ส่งคืนสถานะที่ใช้ร่วมกัน และเก็บกวาดหลังจากนั้น ต่อไป มาดูวิธีแบ่งปันสถานะกัน 🎯
เรียนรู้ Python ด้วย AI tutor — ฟรี
เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป
- คอร์ส
- 30
- บทเรียน
- 120
คำถามที่พบบ่อย
บทเรียน “ฮุกเริ่มต้นระบบตามอายุการใช้งาน” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “ฮุกเริ่มต้นระบบตามอายุการใช้งาน” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส MCP Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส MCP Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “ฮุกเริ่มต้นระบบตามอายุการใช้งาน”
เปิดการเชื่อมต่อเพียงครั้งเดียวเมื่อเซิร์ฟเวอร์เริ่มทำงาน คุณปฏิบัติ MCP Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน MCP Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน MCP Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน
บทเรียน “ฮุกเริ่มต้นระบบตามอายุการใช้งาน” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน MCP Academy นี้ได้ไหม
ได้ บทเรียน MCP Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- ฮุกเริ่มต้นระบบตามอายุการใช้งาน
- แชร์สถานะผ่านบริบทแอป
- เข้าถึงออบเจ็กต์บริบท
- ปิดระบบอย่างสะอาดและคืนทรัพยากร