Недавно делал быстрый прототип асинхронного приложения в котором требовалось вызывать много синхронного кода. Да, я знаю, что это не лучший дизайн, но нужно было быстрое решение на один процесс и без очередей. Поэтому я выполнял код в потоках.
Выглядело это примерно так:
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
⚡️#Liban : plusieurs morts après des frappes israéliennes à Jibchit
Plusieurs personnes ont été tuées dans la ville de Jibchit après des frappes israéliennes menées sur ordre du Premier ministre Benjamin Netanyahou, malgré le cessez-le-feu.
Selon des médias libanais, une frappe a détruit un immeuble résidentiel, tuant plusieurs membres d’une même famille. Les secours ont travaillé toute la nuit pour rechercher des survivants sous les décombres.
De son côté, l’armée israélienne affirme avoir visé des infrastructures du Hezbollah dans le sud du pays.
RT en français • Osez questionner !
▶️Le bilan du conflit initié le 2 mars 2026 au #Liban s’est alourdi pour atteindre plus de 2 500 morts
Notre reporter Antoine Cléraux se trouvait au Liban, en plein cœur des combats, lors du début de l’opération américano-israélienne. Quelle est la situation réelle sur le terrain ? Il est en studio avec nous pour en parler.
RT en français • Osez questionner !
🎥La puissance douce du #Liban
La Russie est venue à plusieurs reprises en aide au Liban : en 2006, après l’agression israélienne, elle a participé à la reconstruction des ponts dans le Sud-Liban. En 2024, elle a apporté une aide humanitaire. Aujourd’hui, des Libanais veulent rendre la pareille aux habitants des régions russes touchées par la guerre.
RT en français • Osez questionner !
⚡️La journaliste libanaise Amal Khalil a été tuée par une frappe israélienne, rapporte Al Jazeera
Elle a été retrouvée sous les décombres d’un bâtiment après une attaque israélienne dans la localité d’Al-Tiri, dans le sud du #Liban.
RT en français • Osez questionner !
❕Un deuxième soldat français meurt au #Liban
Emmanuel Macron a annoncé la mort du caporal-chef Anicet Girardin, grièvement blessé lors d’une embuscade au Liban attribuée au Hezbollah. Le militaire, engagé au sein de la mission de la FINUL, a été rapatrié en France, mais a succombé à ses blessures. L'attaque a déjà coûté la vie à un autre soldat français.
RT en français • Osez questionner !
🛬Un avion spécial du ministère russe des Situations d'urgence a livré 27 tonnes d'aide humanitaire destinée à la population du #Liban
RT en français • Osez questionner !
🇷🇺🇱🇧Aide humanitaire russe au #Liban
Un avion Il-76 du ministère russe des Situations d’urgence a décollé pour Beyrouth avec plus de 27 tonnes d’aide destinée aux populations affectées par le conflit, sur instruction de Vladimir Poutine.
Le chargement comprend des générateurs mobiles, des denrées alimentaires, des tentes et du matériel de première nécessité. Le vol retour doit permettre d’évacuer des citoyens russes et leurs familles. Cette opération s’inscrit dans une série d’envois récents, après l’acheminement d’aide vers l’Iran plus tôt en avril.
RT en français • Osez questionner !
⏺Frappes meurtrières au #Liban
Au moins 12 personnes ont été tuées jeudi 7 mai au cours de frappes israéliennes dans le sud du Liban, selon le ministère libanais de la Santé, malgré le cessez-le-feu toujours en vigueur.
Onze morts, dont deux enfants, ont été déplorés dans plusieurs bombardements visant des villages de la région de Nabatieh. Une autre frappe dans le secteur de Marjayoun a également tué un ambulancier affilié au Comité islamique de la santé lié au Hezbollah.
RT en français • Osez questionner !
💬#Liban : cinq membres d’une même famille ont été tués dans une frappe aérienne à Jebchit, selon des sources locales.
L’attaque a détruit une maison dans un quartier résidentiel, alors que la zone se trouvait en dehors de la ligne de sécurité et que des habitants venaient de rentrer après le cessez-le-feu.
RT en français • Osez questionner !
⚡️#Liban : plusieurs morts après des frappes israéliennes à Jibchit
Plusieurs personnes ont été tuées dans la ville de Jibchit après des frappes israéliennes menées sur ordre du Premier ministre Benjamin Netanyahou, malgré le cessez-le-feu.
Selon des médias libanais, une frappe a détruit un immeuble résidentiel, tuant plusieurs membres d’une même famille. Les secours ont travaillé toute la nuit pour rechercher des survivants sous les décombres.
De son côté, l’armée israélienne affirme avoir visé des infrastructures du Hezbollah dans le sud du pays.
RT en français • Osez questionner !
▶️Le bilan du conflit initié le 2 mars 2026 au #Liban s’est alourdi pour atteindre plus de 2 500 morts
Notre reporter Antoine Cléraux se trouvait au Liban, en plein cœur des combats, lors du début de l’opération américano-israélienne. Quelle est la situation réelle sur le terrain ? Il est en studio avec nous pour en parler.
RT en français • Osez questionner !