MCP Academy · Урок

Обработчик запуска с учётом времени жизни

Открывайте соединения один раз при запуске сервера.

Урок 1 из 413 шагов

«Обработчик запуска с учётом времени жизни» — бесплатный урок MCP Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 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 выполнял его на протяжении всего времени работы сервера.

from mcp.server.fastmcp import FastMCP

mcp = FastMCP("demo", lifespan=lifespan)

Открывайте здесь ресурсоёмкие компоненты

Блок запуска — подходящее место для ресурсоёмкой настройки: пулов соединений с базой данных, HTTP-клиентов или загрузки модели в память.

Передайте общее состояние через yield

Всё, что Вы передаёте через 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. Соберите в нём всю логику запуска, а не распределяйте настройку по инструментам.

Обрабатывайте сбои запуска

Если при запуске возникает ошибка, сервер должен отказаться запускаться, а не работать с неполной конфигурацией и не завершаться непонятным образом позже.

Быстрая проверка

Где относительно yield размещается код запуска в lifespan?

Итоги: хук lifespan

Вы изучили lifespan — асинхронный менеджер контекста, который выполняет настройку до yield, передаёт общее состояние через yield и освобождает ресурсы после него. Далее: передача этого состояния. 🎯

Можно начать бесплатно

Изучай Python с ИИ-репетитором — бесплатно

Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.

Курсы
30
Уроки
120

Часто задаваемые вопросы

Урок «Обработчик запуска с учётом времени жизни» бесплатный?

Да — полный текст урока «Обработчик запуска с учётом времени жизни» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс MCP Academy, подпишись на CoddyKit PRO. Курс MCP Academy содержит 4 уроков всего.

Чему я научусь в уроке «Обработчик запуска с учётом времени жизни»?

Открывайте соединения один раз при запуске сервера. Ты практикуешь MCP Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать MCP Academy?

Предыдущий опыт не требуется. MCP Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.

Сколько времени занимает урок «Обработчик запуска с учётом времени жизни»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке MCP Academy?

Да. Каждый урок MCP Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Обработчик запуска с учётом времени жизни
  2. Общий контекст приложения
  3. Доступ к объекту контекста
  4. Корректное завершение работы и освобождение ресурсов
← Назад к MCP Academy