Недавно делал быстрый прототип асинхронного приложения в котором требовалось вызывать много синхронного кода. Да, я знаю, что это не лучший дизайн, но нужно было быстрое решение на один процесс и без очередей. Поэтому я выполнял код в потоках.
Выглядело это примерно так:
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
Astăzi am înțeles clar că, în Republica Moldova, pentru cei din PAS, pentru cei aflați la guvernare, nu mai există justiție. Iar dacă justiția nu mai există pentru ei, atunci de astăzi nu mai există nici pentru mine și nici pentru cetățenii Republicii Moldova. #partidulnostru
Astăzi am înregistrat un proiect de lege care permite aflarea, timp de un an, pe teritoriul Republicii Moldova a automobilelor înmatriculate peste hotare, după modelul UE.
#partidulnostru
Сегодня мы зарегистрировали законопроект, который позволяет автомобилям с иностранной регистрацией находиться на территории Республики Молдова в течение одного года по модели ЕС.
#partidulnostru
Fălești are o nouă atracție culturală!
Primarul Alexandr Severin #PartidulNostru a inaugurat Aleea Culturii Eminesciene – un spațiu artistic dedicat lui Mihai Eminescu, amenajat în parcul „Victoriei”. Proiectul, inițiat de artistul Damian Furdui, originar din Fălești, a reunit patru sculptori care au creat lucrări inspirate din opera eminesciană.
---
В городе Фалешты появилась новая туристическая достопримечательность:Аллея культуры Эминеску в парке Победы. Проект был реализован в рамках скульптурного лагеря, посвящённого великому поэту Михаю Эминеску, и стал возможным благодаря поддержке Министерства культуры, примарии Фалешт и других партнёров.
Astăzi am avut o întrevedere cu Nick Pietrowicz, Însărcinat cu Afaceri al Ambasada SUA în Republica Moldova. Am discutat despre evoluția relațiilor moldo-americane, inclusiv despre cooperarea economică și schimburile comerciale, care au un potențial semnificativ încă nevalorificat. Totodată, am trecut în revistă agenda parlamentară a fracțiunii Partidul Nostru.
De asemenea, am abordat subiecte legate de procesul de reintegrare a țării și am avut un schimb de opinii privind securitatea regională, în contextul intereselor strategice ale Republica Moldova.
___
Сегодня у меня состоялась встреча с Ником Петровичем, временным поверенным в делах Посольства США в Республике Молдова. Мы обсудили развитие молдо-американских отношений, включая экономическое сотрудничество и торговые обмены, которые обладают значительным, пока ещё не реализованным потенциалом. Также мы рассмотрели парламентскую повестку фракции Нашей Партии.
Кроме того, мы затронули вопросы, связанные с процессом реинтеграции страны, и обменялись мнениями по поводу региональной безопасности в контексте стратегических интересов Республики Молдова. #PartidulNostru#НашаПартия
E timpul să schimbăm legea: artiștii, actorii, sportivii, oamenii de afaceri și medicii trebuie să rămână în Parlament și să își continue activitatea profesională!
Detalii aici...
__
Пора изменить закон: артисты, актёры, спортсмены, предприниматели и врачи должны оставаться в парламенте и продолжать свою профессиональную деятельность!
Подробности - по ссылке...
#PartidulNostru#НашаПартия
Ședința comună a Guvernului cu reprezentanții fracțiunilor parlamentare. Detalii aici…
—
Совместное заседание правительства с представителями парламентских фракций. Подробности – по ссылке…
#PartidulNostru#НашаПартия
Luare de cuvânt în timpul examinării proiectului privind declararea stării de urgență – ședința Parlamentului din 24 martie 2026.
Detalii aici:
__
Выступление во время рассмотрения проекта о введении чрезвычайного положения - заседание Парламента от 24 марта, 2026 года.
Подробности:
#PartidulNostru#НашаПартия