MCP Academy · บทเรียน

ฮุกเริ่มต้นระบบตามอายุการใช้งาน

เปิดการเชื่อมต่อเพียงครั้งเดียวเมื่อเซิร์ฟเวอร์เริ่มทำงาน

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

ฮุกเริ่มต้นระบบตามอายุการใช้งาน เป็นบทเรียน 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

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

  1. ฮุกเริ่มต้นระบบตามอายุการใช้งาน
  2. แชร์สถานะผ่านบริบทแอป
  3. เข้าถึงออบเจ็กต์บริบท
  4. ปิดระบบอย่างสะอาดและคืนทรัพยากร
← กลับไปที่ MCP Academy