Недавно делал быстрый прототип асинхронного приложения в котором требовалось вызывать много синхронного кода. Да, я знаю, что это не лучший дизайн, но нужно было быстрое решение на один процесс и без очередей. Поэтому я выполнял код в потоках.
Выглядело это примерно так:
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
📣 Biroul Naţional de Statistică a publicat setul de infografice ,,Copiii din Moldova în anul 2024” 👧🧒👶, privind principalii indicatori statistici din domeniile demografie, educaţie, familie, infracţionalitate juvenilă, protecţie socială, sănătate, cultură şi sport.
🔵 Setul de infograficele îl găsiți la: https://statistica.gov.md/ro/situatia-copiilor-in-moldova-in-anul-2024-9876_62116.html
#CopiiiMoldovei
#GeneratiaViitoare
#familie
Zveri ist eine der bekanntesten Rockbands Russlands.🎸
Ihre Songs prägten eine ganze Generation, und genau bei einem ihrer Konzerte begann einst die Liebesgeschichte von Maschas Eltern.💗
👧🏼 Die 17-jährige Mascha entdeckt zufällig, dass ihr Vater lebt und ihn bald auf einem Konzert von Zveri treffen könnte. Sie macht sich auf eine emotionale Reise, die alles verändert.
🎬 „Alles, was dich angeht“ ist ein herzerwärmendes Komödiendrama über Familie und die Suche nach der Wahrheit, basierend auf einer wahren Geschichte.
💬In russischer Sprache mit englischen Untertiteln
🗓️ Kommt am 4. September um 19:00 Uhr vorbei!
❕Anmeldung
#kino#komödie#drama#familie#liebe#rock#event
Zum Start ins neue Schuljahr öffnen das Bildungszentrum und die Kunstwerkstatt ihre Türen für Kinder und Eltern!📢😍
🗓️Am 30. August ab 11 Uhr erwartet Euch ein bunter Tag voller spannender Schnupperstunden, inspirierender Begegnungen mit Lehrkräften und kreativer Atmosphäre.🥰
Ob Mathematik🧮oder Russisch📝, Bastelstundeoder Ballett🩰 – jedes Kind hat die Möglichkeit, Neues auszuprobieren und zu entdecken, dass Lernen nicht nur Pflicht, sondern auch ein Vergnügen sein kann!😉
👧🏼 Das Programm ist auf verschiedene Altersgruppen abgestimmt: von Kleinkindern über Schulkinder bis hin zu Jugendlichen.
⏰ Den Zeitplan der Schnupperstunden und die Anmeldung findet Ihr auf unserer Website.
Kommt vorbei, findet Euer eigenes Ding und startet das Schuljahr mit Freude!👩🏻🏫❤️
#TagDesWissens#Schnupperstunden#Kinder#Familie#Bildung#Kreativität