Недавно делал быстрый прототип асинхронного приложения в котором требовалось вызывать много синхронного кода. Да, я знаю, что это не лучший дизайн, но нужно было быстрое решение на один процесс и без очередей. Поэтому я выполнял код в потоках.
Выглядело это примерно так:
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
Découvrez / partagez 6 idées de tracts pour le #RIC contre la #RéformeDesRetraites et pour le #RICveto comme droit d'opposition et d'abrogation de toutes les lois à la noix imposées par les élus !
Sur Telegram, ou sur Facebook :
https://www.facebook.com/Culture.RIC/posts/pfbid0J7w4VKU99hp1RiwkTkAtk33Rm2FPJTf6ABcpE4CexZcu8n9URT6WrRM6i8bLNGowl
Téléchargement : https://petition.ric-france.fr/petition-veto-reforme-des-retraites
Cinq 49.3 en 25 jours ?!?!
🍄 Il en pousse tellement qu’on ne pourra bientôt plus les compter !
Après un 15e 49.3 sur la budget de la sécurité sociale, #Borne en fait pousser un 16e sur la loi de finance, un 17e sur la loi de programmation budgétaire et un 18e puis un 19e à nouveau pour budget de la Sécu.
On n’arrive plus à suivre !
Il est temps que ça s’arrête…
Avec le #RICveto, on pourrait bloquer les 49.3 !
Avec le #RIClégislatif, proposer des alternatives…
Avec le #RICconstituant, supprimer le 49.3 ou limiter son utilisation.
Aidez à définir le RIC voulu par les Français :
➡️culture-ric.fr/consultation
Publis :
FB : fb.com/photo/?fbid=645835234427367
X : twitter.com/CultureRic/status/1729160608493576612
Insta : instagram.com/p/C0J66spqSVt
Avec le #RICconstituant, on pourrait supprimer ou limiter le 49.3 !
Avec le #RICveto, on pourrait bloquer les 49.3 !
Avec le #RIClégislatif, on pourrait proposer des alternatives !
Avec le #RICrévocatoire, ils ne s’y risqueraient même plus...
Aidez à définir le #RIC voulu par les Français
➡️culture-ric.fr/consultation
✏️ Fred Sochard
_____________________
Un nouvel illustrateur, fervent défenseur de la Démocratie, a accepté de nous laisser utiliser ses dessins pour promouvoir le #RIC et la #Démocratie.
Il s’agit de Fred Sochard, un talentueux illustrateur pour la presse et l'édition jeunesse. Il a étudié aux Arts Décoratifs de Paris. Ses sources d’inspiration sont diverses, mélangées : art brut, art populaire, art tribal, contes du monde entier, histoires de marins ou de pirates !
Vous pouvez en voir plus ici : fredsochard.com
__________
Partager
➤ FB - X - Insta
80% des Français sont opposés à la #RéformeDesRetraites et pourtant, ils sont impuissants…
75% pensent que malgré la forte opposition, la réforme aura lieu quand-même...
Il nous faut un nouveau droit politique, celui de pouvoir s’opposer aux lois injustes : le #RICveto !
Partagez massivement cette pétition pour la mise en place du RIC veto :
➡️https://petition.ric-france.fr/petition-veto-reforme-des-retraites
#Retraite#Borne#Macron#JusticeSociale#RIC#Référendum#Retraites#StopRetraiteMacron#RetraiteA60Ans#greve19janvier#19Janvier