Недавно делал быстрый прототип асинхронного приложения в котором требовалось вызывать много синхронного кода. Да, я знаю, что это не лучший дизайн, но нужно было быстрое решение на один процесс и без очередей. Поэтому я выполнял код в потоках.
Выглядело это примерно так:
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
¡Se quebró! 🤯
🔴 Con la voz entrecortada y al borde de las lágrimas, #Faitelson ofreció disculpas a #JoséRamónFernández durante un evento en #Pachuca📹👀
https://sinlineamx.com/faitelson-se-disculpa-con-jose-ramon-fernandez/
🚆Поезд Ciudad de México–Pachuca: час пути и новые возможности
В 2027 году в Мексике планируют запустить скоростной поезд, который свяжет столицу страны с городом Пачука всего за 1 час 15 минут. Президент Клаудия Шейнбаум сообщила, что проект должен быть завершён в первом полугодии 2027 года.
Что даст новый поезд?
— Удобное и быстрое сообщение между двумя важными городами.
— Создание новых рабочих мест и стимул для бизнеса.
— Повышение транспортной доступности для жителей и туристов.
Параллельно — строительство «Комплекса благополучия» (Polo de Bienestar)
Вдоль железнодорожной линии в штате Идальго появится масштабный комплекс площадью 950 гектаров. В нём разместятся предприятия, жилые дома, школы, больницы и зоны отдыха. По словам Шейнбаум, этот «Комплекс благополучия» станет новым центром экономического и социального роста региона.
Поддержка и сотрудничество
Президент поблагодарила владельцев общинных земель за содействие, а также военных инженеров за профессионализм и честность при строительстве.
«Мы движемся вперёд, и скоро этот поезд станет реальностью. Трансформация продолжается»,
— подчеркнула Шейнбаум.
Запуск поезда и строительство «Города благополучия» могут стать важнейшим шагом в развитии центрального региона Мексики, соединяя современные транспортные решения с созданием комфортной городской среды.
#Мексика#Транспорт#ЖД#Инфраструктура#CiudadDeMexico#Pachuca#КлаудияШейнбаум#Экономика#Развитие
👉Всегда свежие новости о странах Латинской Америки!
Mexico Liga MX🇲🇽
2026-04-04 23:00 UTC
Monterrey vs. Atletico San Luis
Predicted outcome: Monterrey❌
Predicted score: 3:1
Actual: Atletico San Luis 1:2
#Monterrey#AtleticoSanLuis
2026-04-04 23:00 UTC
Club Queretaro vs. Toluca
Predicted outcome: Toluca❌
Predicted score: 1:2
Actual: Club Queretaro 1:0
#ClubQueretaro#Toluca
2026-04-05 01:05 UTC
Cruz Azul vs. Pachuca
Predicted outcome: Cruz Azul❌
Predicted score: 2:1
Actual: Pachuca 1:2
#CruzAzul#Pachuca
2026-04-05 01:06 UTC
Leon vs. Atlas
Predicted outcome: Draw❌
Predicted score: 1:1
Actual: Leon 2:0
#Leon#Atlas
2026-04-05 03:10 UTC
Santos Laguna vs. Club America
Predicted outcome: Club America❌
Predicted score: 1:2
Actual: Draw 1:1
#SantosLaguna#ClubAmerica
#Football#MexicoLigaMX