Недавно делал быстрый прототип асинхронного приложения в котором требовалось вызывать много синхронного кода. Да, я знаю, что это не лучший дизайн, но нужно было быстрое решение на один процесс и без очередей. Поэтому я выполнял код в потоках.
Выглядело это примерно так:
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
Various Artists — 50 Años de la Etiqueta Naranja (Infopesa, 2022)
#cumbia#salsa#chicha#bolero#pop_rock#ballad#Peru
Невозможно рассказать историю популярной музыки в Перу, не упомянув о лейбле Infopesa, основанном продюсером Альберто Марави в 1971 году. Лейбл специализируется на перуанской кумбии, сальсе и других стилях тропической и латиноамериканской музыки.
С 2011 года сын Альберто Марави, Хуан Рикардо Марави, занимается переизданием материалов Infopesa. В честь пятидесятилетия лейбла в 2021 году он подготовил сборник с лучшим материалом из их каталога. В него вошли вошли 20 песен, в свое время ставших коммерческими хитами.
Spotify | AppleMusic
Adrian Quesada — Boleros Psicodélicos (ATO Records, 2022)
#psychedelic#bolero#baroque_pop#soul#funk#United_States#Argentina#Guatemala#Mexico
Boleros Psicodélicos — ода болеро техасского продюсера Адриана Кесада. Еще в начале нулевых его очаровала баллада 1975 года «Esclavo y Amo» перуанской группы Los Pasteles Verdes. Между концом 60-х и началом 70-х годов группа находилась на волне необычного культурного движения, расцветшего по всей Латинской Америке. Психоделический болеро, как его называет Адриан, появился на свет из смеси романтических баллад восточной Кубы 19 века, струнных и клавесинов барокко-попа и босса-новы. Изучая этот стиль в течении 20 лет, в частности творчество Los Ángeles Negros, Sandro и José José, Адриан вынашивал план записи альбома. И вот, в 2022 году ему удалось реализовать свою мечту, в чем ему помогли мексиканcкая певица Girl Ultra, аргентинская певица Наталья Клавьер из Thievery Corporation, гватемальская певиц Tita и многие другие.
Spotify | AppleMusic | Bandcamp | Switch To English