Недавно делал быстрый прототип асинхронного приложения в котором требовалось вызывать много синхронного кода. Да, я знаю, что это не лучший дизайн, но нужно было быстрое решение на один процесс и без очередей. Поэтому я выполнял код в потоках.
Выглядело это примерно так:
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
🇷🇺🤝🇮🇳 Новости с INNOPROM 2025
Сегодня я выступил на стратегической сессии «Россия–Индия: к $100 миллиардам товарооборота» в рамках INNOPROM 2025 в Екатеринбурге.
Было честью разделить сцену с В. Кумаром, А. Соболевым, А. Агарвалом, Н. Рыбленковым, И. Куржиямским, М. Лабудиным, Б. Шрикантом и А. Крутовым.
Благодарю за возможность внести вклад в развитие торгового диалога между Индией и Россией как заместитель председателя Комиссии МТПП по Индии и президент группы компаний Soltex.
📍 Я на INNOPROM до вечера — буду рад встретиться!
#INNOPROM2025#ИндияРоссия#SoltexGroup#ManishKumar#Торговля#EAEUIndia
🇷🇺🤝🇮🇳 INNOPROM 2025 Update
Today, I had the honor of speaking at the strategic session “Russia–India: Toward a $100 Billion Trade Turnover” at INNOPROM 2025 in Ekaterinburg.
Proud to share the stage with H.E. Vinay Kumar, Andrey Sobolev, Anil Agarwal, Nikita Ryblenkov, Igor Kurzhiyamsky, Mikhail Labudin, Badiga Shrikant, and Alexander Krutov.
Grateful for the opportunity to contribute to India–Russia trade dialogue as Deputy Chairman of MCCI’s India Commission & President of Soltex Group.
📍 I’m at INNOPROM till evening — happy to connect!
#INNOPROM2025#IndiaRussia#SoltexGroup#ManishKumar#TradeGrowth#EAEUIndia
🇷🇺🤝🇮🇳 I’m pleased to share that I will be participating as a speaker at INNOPROM 2025, Russia’s largest international industrial trade fair, taking place from July 7–10 at the Ekaterinburg-EXPO.
On July 7 (10:30–12:00, Hall 3.4), I will speak in the strategic session:
“Russia–India: Toward a $100 Billion Trade Turnover.”
As President of Soltex Group and Deputy Chairman of the MCCI Commission on Foreign Economic Relations with Partners in India, I look forward to contributing to the dialogue on expanding bilateral trade, addressing non-tariff barriers, and advancing the EAEU–India Free Trade Agreement.
INNOPROM is a premier global platform where industry, innovation, and international cooperation converge — bringing together decision-makers from around the world.
🔗 Register: expo.innoprom.com/registration/visitor-2025
🎟 Promo Code: ZVCZ2A (Free Entry)
Let’s build the next chapter of India–Russia industrial partnership.
#INNOPROM2025#SoltexGroup#ManishKumar#IndiaRussia#EAEUIndia#TradeGrowth