Недавно делал быстрый прототип асинхронного приложения в котором требовалось вызывать много синхронного кода. Да, я знаю, что это не лучший дизайн, но нужно было быстрое решение на один процесс и без очередей. Поэтому я выполнял код в потоках.
Выглядело это примерно так:
from fastapi.concurrency import run_in_threadpool
async def execute(data: DataRequest) -> DataResponse:
try:
result = await run_in_threadpool(sync_function, data)
return DataResponse(data=result)
except Exception as e:
return DataResponse(
error=str(e),
success=False,
)
В общем работает нормально. Для всех вызовов под капотом используется общий тредпул, всё работает предсказуемо.
Но потребовалось изменить количество запускаемых в пуле потоков (по умолчанию создается 40 воркеров).
Так как дело происходит с FastAPI, делается это через lifespan используя настройки anyio:
import anyio
@asynccontextmanager
async def lifespan(app: FastAPI):
limiter = anyio.to_thread.current_default_thread_limiter()
limiter.total_tokens = 100
yield
# если вдруг нужно вернуть обратно
limiter.total_tokens = 40
Зачем менять количество воркеров?
- уменьшить, если оперативки мало (один тред занимает ~8мб)
- увеличить чтобы выдержать нагрузку
Если есть предложения получше при тех же вводных - предлагайте😉
#async
📍Погода в Алании меняется — солнечно и без дождя уже со среды!🌞🇹🇷
Сейчас в Аланье наблюдаются остаточные осадки и облачность ☁️🌧️ — дожди продолжаются сегодня, но уже завтра небо начнёт проясняться 🌤️и к середине недели погода станет сухой и приятной.
📅Прогноз по дням:
➡️Сегодня, 12 января — дождь и облачно 🌧️
➡️Завтра, 13 января — малооблачно с прояснениями ☁️🌤️
➡️Среда–четверг, 14–15 января — солнечно☀️, без дождя и с комфортной температурой🌡️ (днём до ~14-16 °C) 🌞🌴
☀️ В январе в Аланье обычно много солнечных часов — до 6-8 часов в день 🌅, особенно во второй половине месяца.
Отличное время для прогулок по набережной, кофе у моря ☕🌊 или фотосессий на фоне Средиземного моря
#Алания#ПогодаАлания#AlanyaWeather#Турция#Солнце#БезДождя#Путешествия#Отдых
🌪Морской смерч у берегов Аланьи!
Сегодня утром, 5 октября 2025 года, у побережья популярного пляжа Инжекум (İncekum) жители и туристы стали свидетелями редкого природного явления — 🌊водяного торнадо!
Очевидцы сняли, как над морем образовалась вращающаяся колонна воды, которая поднималась к небу, напоминая сцену из фильма 🎥.
К счастью, смерч быстро рассеялся и не причинил ущерба — ни пострадавших, ни разрушений не зафиксировано 🙏
🌤 По словам метеорологов, подобные вихри иногда возникают из-за резкой смены температур между морем и воздухом, особенно в начале октября, когда погода остаётся тёплой, а давление нестабильно.
👀 Видео происшествия уже активно расходится по турецким соцсетям — многие пользователи удивляются, как часто в последнее время природа «удивляет» Аланью.
📍Локация: İncekum, Alanya
🕓Дата: 5 октября 2025
💨Тип явления: Водяной торнадо (морской смерч)
🚫Последствия: Без разрушений
#Аланья#Alanya#Инжекум#ПогодаАланья#Турция#Торнадо#Смерч#AlanyaNews#НовостиТурции#AlanyaLife#ПриродаТурции#AlanyaWeather