РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
305 of 307 menu

Параметр workers

Параметр workers указывается в командной строке при запуске приложения через uvicorn и определяет число рабочих процессов, которые будут одновременно обслуживать входящие запросы. Каждый процесс запускает отдельный экземпляр приложения и работает независимо от остальных. По умолчанию используется один процесс.

Значение параметра передаётся как целое число. Обычно количество процессов берут равным числу ядер процессора или вычисляют по формуле (2 × ядра) + 1. При использовании workers нужно учитывать, что глобальные переменные и кэш в памяти не разделяются между процессами.

Синтаксис

uvicorn main:app --workers N

Пример

Давайте запустим приложение с четырьмя рабочими процессами. Сначала создадим файл приложения:

from fastapi import FastAPI app = FastAPI() @app.get('/') def index(): return {'text': 'hello'}

Теперь запустим сервер с параметром workers:

uvicorn main:app --workers 4

В консоли увидим, что поднялось четыре процесса:

Started parent process [12345] Started server process [12346] Started server process [12347] Started server process [12348] Started server process [12349] Waiting for application startup. Application startup complete.

Пример

Давайте посмотрим, как параметр workers сочетается с автоматической перезагрузкой. Создадим приложение:

from fastapi import FastAPI app = FastAPI() @app.get('/user/{name}') def user(name: str): return {'name': name}

Запустим сервер с двумя процессами и флагом --reload:

uvicorn main:app --workers 2 --reload

Результат запроса к адресу /user/abcde:

{"name": "abcde"}

Смотрите также

  • команда uvicorn,
    которая запускает ASGI-сервер для приложения
  • параметр reload,
    который включает автоматическую перезагрузку при изменениях
  • параметр host,
    который задаёт адрес привязки сервера
  • параметр port,
    который задаёт порт прослушивания сервера
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить