Недавно делал быстрый прототип асинхронного приложения в котором требовалось вызывать много синхронного кода. Да, я знаю, что это не лучший дизайн, но нужно было быстрое решение на один процесс и без очередей. Поэтому я выполнял код в потоках.
Выглядело это примерно так:
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
EU Ambassador to Kazakhstan Kestutis Jankauskas visited Pavlodar Region to take part in the industrial tour of two ERG facilities and meet with Deputy Akim of the Pavlodar Region Aizada Kurmanova. During the industrial tour, Ambassador visited Pavlodar Aluminium Plant and Kazakhstan Electrolysis Plant. The trip was initiated by the BeNeLux Chamber of Commerce.
****
Еуроодақтың Қазақстандағы Елшісі Кестутис Янкаускас Павлодар өңіріне ERG мекемесінің екі зауытынының өндірістік турына қатысып, Павлодар облысы әкімінің орынбасары Айзада Құрмановамен кездесу үшін іс-сапармен келді. Өндірістік тур барысында Елші Павлодар алюминий зауыты мен Қазақстан электролиз зауытынының қызметімен танысты. Бұл сапар BeNeLux Сауда-өнеркәсіп палатасының бастамасымен ұйымдастырылды.
#EUinKZ#EUinKazakhstan
Еуропалық Одақ пен Қазақстан арасындағы дипломатиялық қатынастардың орнатылғанына 30 жыл толды. Осыған орай Еуроодақтың Қазақстандағы Елшісі Кестутис Янкаускастың Jibek Joly телеарнасына берген сұхбатын тамашалыңыздар.
🇪🇺🇰🇿
Евросоюз и Казахстан отметили 30-летие дипломатических отношений. Смотрите интервью Посла Европейского Союза в Казахстане Кестутиса Янкаускаса телеканалу Jibek Joly.
#EUKZ30#EUinKazakhstan#EUinKZ
Биыл Еуропалық Одақ пен Қазақстан арасындағы дипломатиялық қатынастардың орнатылғанына 30 жыл толады.
Қазақстан мен Еуропалық одақтың серіктестігі республика тәуелсіздік алған сәттен басталған. 1993 жылы 2 ақпанда дипломатиялық қатынастарды айқындайтын келісімге кол қойылып, сол жылы Брюссельде Қазақстанның Еуропалық Одақтағы Өкілдігі ашылған болатын.
Ал 1994 жылы Алматы қаласында Еуропалық Одақтың Қазақстандағы Өкілдігі өз жұмысын бастап, 2007 жылы кеңсе Астана қаласына ауыстырылды.
🇪🇺🇰🇿
This year marks 30th anniversary of diplomatic relations between the European Union and Kazakhstan.
Kazakhstan and the European Union started their close partnership since the country's independence. On 2 February 1993 the parties signed an agreement that established official diplomatic relations between the EU and Kazakhstan. In the same year Kazakhstan opened its office in Brussels.
In 1994, the EU Delegation to Kazakhstan began its work in Almaty, and in 2007 the office was moved to Astana.
#EUKZ30#EUinKZ#EUinKazakhstan
International Day of Women and Girls in Science – 11 February 🔬🌍
Today, we celebrate the achievements of women and girls in science and highlight the importance of gender equality in research and innovation. The EU is committed to empowering women in STEM and fostering an inclusive environment where talent knows no boundaries.
****
11 ақпан – Ғылымдағы әйелдер мен қыз балалардың халықаралық күні 🔬🌍
Бүгін біз ғылымдағы әйелдер мен қыз балалардың жетістіктерін мойындай отыра, зерттеулер мен инновациялардағы гендерлік теңдіктің маңыздылығын атап өтудеміз. Еуроодақ STEM саласындағы әйелдердің мүмкіндіктерін кеңейтуге және дарынды адамдардың шекарасын білмейтін инклюзивті ортаны қалыптастыруға ұмтылады.
#EU4Science#WomenInSTEM#GirlsInScience#EUinKazakhstan
🌍 Happy International Youth Day!
Today, we celebrate the energy, creativity, and leadership of young people in Kazakhstan and around the world.
The European Union believes in the power of youth to build inclusive, sustainable, and prosperous societies.
Thank you to all the inspiring young voices we have met through our programmes and events - you are shaping the future today!
*
🌍 Халықаралық жастар күні құтты болсын!
Бүгін біз Қазақстандағы және әлемдегі жастардың жігерін, шығармашылығын және көшбасшылығын атап өтудеміз.
Еуропалық Одақ жастардың әділ, тұрақты және гүлденген қоғам қалыптастырудағы әлеуетіне сенеді.
Бағдарламаларымыз бен жобаларымызда жолыққан жігерлі жастарға алғысымыз шексіз - сіздер болашақты бүгін қалыптастырып жатырсыздар!
#InternationalYouthDay#EU4Youth#EUinKazakhstan#YouthEmpowerment