Недавно делал быстрый прототип асинхронного приложения в котором требовалось вызывать много синхронного кода. Да, я знаю, что это не лучший дизайн, но нужно было быстрое решение на один процесс и без очередей. Поэтому я выполнял код в потоках.
Выглядело это примерно так:
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
‘Jorge was my only son, he meant everything to me. He and his pregnant wife were taken from their home in handcuffs with bags over their heads.’
Delia de Califano from Argentina has never seen her son or daughter-in-law after the event she describes. From 1976 to 1983 Argentina was ruled by the junta. Those who disagreed with the military dictatorship were kidnapped and tortured. Children of opposition members were given away to childless military families.
For more than 30 years Delia hasn’t lost hope to find her grandson. Those women, whose kids were kidnapped back then created a group and became known as mothers of the Plaza de Mayo. Mostly being 80+, they are still looking for their children.
Their stories are in the documentary Argentina’s Stolen Children.
#humanstories#children
Follow: https://t.me/rtdocumentary
If you want your children to improve, let them overhear the nice things you say about them to others.
— Haim Ginott –
#quotes#family#children
@quietworld🍃
How Ukrainian schoolchildren are instilled with Nazi ideology
A textbook titled 'Defence of the Motherland' was found in one of the schools in Mariupol. It was published in 2018 under the patronage of the SBU and was given to high school students. The textbook describes the mining of public places, biological weapons, and how to handle grenades, RPGs and Kalashnikovs. The book also explains to teenagers the advantages of NATO and how dangerous Russia is for Ukraine.
Several chapters are devoted to warfare. Teenagers were told how to fire, act as part of a combat team and provide first aid if wounded during a fight. In addition, illustrations explain how NATO troops defend and attack.
And that’s not all there is to say about education in Ukraine. See our documentary film Fast Forward to Fascism to find out how children are being taught a distorted version of history.
#Donbass#history#children
Follow: https://t.me/rtdocumentary
According to the deputy regional director of UNICEF, Rania Dagash, 386,000 children in Somalia need treatment due to malnutrition caused by a long drought and the lack of humanitarian aid.
Experts say the COVID-19 pandemic and anti-Russian sanctions have caused difficulties in helping people. For example, about 92% of Somalia’s wheat needs came from Ukraine and Russia, but now supply chains are disrupted, said Rania Dagash.
But the main reason is drought linked with global climate change. Today’s most suffer from freshwater shortages, and more frequent droughts regions are Somalia, Ethiopia and Kenya.
Droughts are just a part of a global water crisis. Watch the documentary No Way Back: Water to learn more about what’s happening to the water cycle and our planet’s water resources.
#children#Somalia
Follow: https://t.me/rtdocumentary
‘I told them it isn’t for me, but they didn’t believe me. They kept beating me. They fed me very poorly.’
This Indian girl was held as a sex slave for a year. She left home to get some money for her brothers to get an education, but it ended badly for her. In India, these kinds of stories are common. Children are often kidnapped and sold into slavery.
Today is International Missing Children’s Day, that’s why we want to show you this poor Indian girl’s story. Watch the clip to know what horror she has gone through.
Find more stories like this in the documentary Lost Kids.
#children#slavery
Follow: https://t.me/rtdocumentary
📱🚫FLORIDA BANS SOCIAL MEDIA FOR KIDS UNDER 16 — PARENTS REVOLT
🔹 Governor DeSantis signs strictest social media law in America — platforms must verify age or face fifty thousand fines per violation 💰
🔹 TikTok, Instagram, Snapchat given 90 days to implement age verification — biometric scanning and ID checks required 📋
🔹 Parents file federal lawsuit claiming violation of First Amendment rights — ACLU joins challenge citing free speech 📊
🔹 Tech industry threatens to exit Florida market over compliance costs — Meta considers blocking state IP addresses 🔥
America's kids vs. Big Tech battle intensifies as states push digital protection laws 💻
#Florida#socialmedia#children
@america