Недавно делал быстрый прототип асинхронного приложения в котором требовалось вызывать много синхронного кода. Да, я знаю, что это не лучший дизайн, но нужно было быстрое решение на один процесс и без очередей. Поэтому я выполнял код в потоках.
Выглядело это примерно так:
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
⏸A powerful video by our students raising awareness about the dangers of air pollution.
#AirQuality#Sustainability#EcoEducation#GreenUniversity#ActNow
✉️[email protected]
☎️ +998 55 512 00 77
📍Location
🌐Website | 📱Telegram | 📱Instagram | 📱LinkedIn | 🟥YouTube
🌿Scientific and Practical Seminar within the “Yashil bog‘lar” Project
🔴A scientific and practical seminar on the care, treatment, and protection of green spaces was held at Astronomy Park in Tashkent. The event was organized for school students and youth.
⏺ The seminar was hosted by the National Committee for Ecology and Climate Change in collaboration with the “Zamin” International Public Foundation.
⏺ Experts conducted theoretical and practical sessions on tree care, including mulching, sanitary and formative pruning, as well as biological methods for plant protection.
⏺ Proposals were made for planting additional shrubs and tree saplings to further enhance the greenery of the park.
⏺ Active participation included representatives from Green University, the Eco-Schools Uzbekistan project, and the Tashkent City Young Ecologists Movement.
At the conclusion of the seminar, young participants and specialists emphasized the importance of sharing experiences, learning modern approaches, and strengthening cooperation to further develop green spaces in Tashkent.
#YashilBoglar#GreenUzbekistan#EcoEducation#YouthForNature ___________________________
🌿“Yashil bog‘lar” loyihasi doirasida ilmiy-amaliy seminar
🔴 Toshkentdagi Astronomiya bog‘ida yashil hududlarni parvarishlash, davolash va himoya qilishga bag‘ishlangan ilmiy-amaliy seminar bo‘lib o‘tdi. Tadbir asosan maktab o‘quvchilari va yoshlar uchun tashkil etildi.
⏺ Tadbir Ekologiya va iqlim o‘zgarishi Milliy Qo‘mitasi va “Zamin” jamoat fondi tashabbusi bilan o‘tkazildi.
⏺ Mutaxassislar daraxtlarni mulchalash, sanitariya va shakllantiruvchi kesish, shuningdek, biologik himoya usullari bo‘yicha nazariy va amaliy mashg‘ulotlar o‘tkazdilar.
⏺ Hududni yanada ko‘kalamzorlashtirish uchun buta va ko‘chatlarni ekish bo‘yicha takliflar bildirildi.
⏺ Seminarda Green University, Eco-schools Uzbekistan loyihasi, Toshkent shahar Yosh ekologlar harakati va boshqa tashkilotlar faol ishtirok etdilar.
Tadbir yakunida yoshlar va mutaxassislar tajriba almashish, zamonaviy yondashuvlarni o‘rganish va Toshkentdagi yashil hududlarni rivojlantirish bo‘yicha hamkorlikni mustahkamlash zarurligini ta’kidlashdi.
#YashilBoglar#GreenUzbekistan#EcoEducation#YouthForNature
✉️[email protected]
☎️ +998 55 512 00 77
📍Location
🌐Website | 📱Telegram | 📱Instagram | 📱LinkedIn | 🟥YouTube
🌱🐾 Colombia passes historic “Law of Empathy”!
Schools across the country will now teach children compassion for animals and respect for nature. The law requires all educational institutions — from kindergartens to high schools — to integrate ethical treatment of animals and biodiversity protection into school projects.
Key points:
High school students can complete community service in animal shelters and wildlife rehabilitation centers.
Programs recognize animals as sentient beings — capable of feeling pain and emotions.
A national network of teachers will share experiences and best practices in fostering respect for life.
Senator Andrea Padilla, the law’s initiator, said:
"Education saves lives and changes the world. We want new generations to grow up as fair and compassionate citizens toward all forms of life."
Colombia is now one of the first Latin American countries to make humane education mandatory — a potential model for other countries worldwide! 🌎💚
#Colombia#LawOfEmpathy#AnimalProtection#EcoEducation#Bioethics☘️Read the latest environmental news on the @ekologuz page. Follow us and send your suggestions and wishes via @eklguz_bot
Instagram | Facebook | Twitter | Sayt | Youtube