Недавно делал быстрый прототип асинхронного приложения в котором требовалось вызывать много синхронного кода. Да, я знаю, что это не лучший дизайн, но нужно было быстрое решение на один процесс и без очередей. Поэтому я выполнял код в потоках.
Выглядело это примерно так:
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
News: #Ethiopia, #European Investment Bank sign €110 million loan to support rural finance, development
The Government of Ethiopia and the European Investment Bank (#EIB) have signed a €110 million loan agreement to support the implementation of the Rural Finance and Development Project, aimed at expanding access to finance for micro-enterprises and small businesses across the country.
The agreement was signed on Monday by Minister of Finance Ahmed Shide and Diederick Zambon, Head of Division for Public Sector at the EIB.
According to the Ministry of Finance, the project seeks to promote sustainable agricultural and economic practices by improving access to financial services, particularly in rural areas. The Development Bank of Ethiopia will channel the funds to rural financial institutions, including microfinance institutions and cooperatives.
The project is co-financed by the...
https://www.facebook.com/AddisstandardEng/posts/pfbid02RQCZ4fGrkSWhJ5YqhBxhbrFwUTy28vSuwRaiWyAysDNh2DqpfTJgdTin6pWZj9k2l
News: #Ethiopia to receive €40 million financing for agricultural exporters under #EIB-#Zemen_Bank agreement
Ethiopian agricultural businesses, particularly exporters of coffee and horticultural products, are set to benefit from up to €40 million in financing under a new agreement between European Investment Bank Global and Zemen Bank SC, according to information shared with Addis Standard by EIB.
https://addisstandard.com/ethiopia-to-receive-e40-million-financing-for-agricultural-exporters-under-eib-zemen-bank-agreement/
Zemen Bank Matches LOC €20 million European Union Investment Bank For Agribusiness. Read more.
https://borkena.com/2026/04/21/zemen-bank-matches-loc-e20-million-european-union-investment-bank-for-agribusiness/#Ethiopia#bank#ZemenBank#loan#EIB#Investment#Agriculture@s_zemen @EIB
👆👆👆👆👆ко дню понедельника:
Европа вкладывает миллиарды в зеленое будущее Центральной Азии
Иногда перемены приходят не внезапно, а как долгожданный рассвет. Сегодня таким рассветом для всего региона стала новость из Брюсселя:
Европейский союз, Европейский инвестиционный банк и Европейский банк реконструкции и развития объявили о крупнейших за историю вложениях в «зеленую» энергетику Центральной Азии, таких как строительство ГЭС Камбаратинская-1 в Кыргызстане.
Объем инвестиций - почти два миллиарда евро.
На площадке Global Gateway Forum уже подписаны соглашения на 900 миллионов евро от ЕС и ЕИБ, а ЕБРР готовит еще 1,3 миллиарда.
Общая стоимость проекта - от 5 до 6 миллиардов долларов. Это по праву можно считать энергетическим событием десятилетия.
Проект, меняющий ландшафт региона
Гидроэлектростанция Камбаратинская-1 будет возведена на реке Нарын, в южной части Кыргызстана. Ее мощность - 1 860 мегаватт, а за плотиной высотой 256 метров образуется гигантское водохранилище на 5,4 миллиарда кубометров воды.
Это - энергия для более миллиона домов и новая система управления водными ресурсами для сельского хозяйства Кыргызстана, Казахстана и Узбекистана.
🤝 Редкий пример доверия
Камбаратинская-1 станет совместным проектом трех стран - Кыргызстана, Узбекистана и Казахстана, каждая из которых получит долю примерно в треть.
Такого уровня кооперации между центральноазиатскими государствами не было десятилетиями.
Что это значит для региона
Проект Камбаратинской-1 даст Центральной Азии чистую и доступную энергию, укрепит продовольственную безопасность, снизит углеродные выбросы и привлечет новые международные инвестиции в устойчивое развитие.
#Kambarata1#Кыргызстан#Казахстан#Узбекистан#ЦентральнаяАзия#Европа#Гидроэнергетика#GlobalGateway#EBRD#EIB#EU#ЗеленаяЭнергия