Недавно делал быстрый прототип асинхронного приложения в котором требовалось вызывать много синхронного кода. Да, я знаю, что это не лучший дизайн, но нужно было быстрое решение на один процесс и без очередей. Поэтому я выполнял код в потоках.
Выглядело это примерно так:
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
Gordon Koang — Unity (Music In Exile, 2020)
#nuer#South_Sudan
Гордон Коанг — слепой от рождения музыкант из региона Верхний Нил, Южный Судан. В компании своего двоюродного брата Пола Биля, Гордон исполняет смесь традиционной музыки народа нуэр и оригинальные композиции на английском, арабском и своем родном языке нуэр. Коанг начал заниматься музыкой в раннем возраста и долгое время выступал на улицах, прежде чем стал широко известен как поэт и местный герой народа нуэр. Теперь его иногда даже называют «Майклом Джексоном из Южного Судана». В 2013 году, когда в Южном Судане началась гражданская война, вооруженный межэтнический конфликт между народами нуэр и динка, Коанг эмигрировал в Австралию. Unity – одиннадцатый альбом Гордона и его единственный альбом, записанный после переезда в Австралию. Работа над записью велась в основном в последние дни 2019 года, когда Гордон начал выступать с местными музыкантами, благодаря Music in Exile.
Spotify | AppleMusic | Bandcamp
UPDF dismisses #UN report alleging atrocities in #South_Sudan
The Uganda Peoples’ Defence Forces (#UPDF) has rejected a United Nations report accusing it of committing atrocities during joint military operations in South Sudan.
The report by the UN Commission on Human Rights in South Sudan, published on February 27, 2026, alleges that the UPDF supported the South Sudan People’s Defence Forces (#SSPDF) in conducting deadly airstrikes that killed civilians and destroyed homes in opposition-affiliated areas.
According to the report, the joint operations targeted areas dominated by the #Nuer community, which are perceived as rebel strongholds.
The Commission claims the aerial bombardments were at levels “unprecedented since pre-independence wars,” withcivilian homes, hospitals, and opposition sites reportedly hit.
One incident cited occurred on March 24, 2025, when SSPDF and Ugandan forces allegedly launched an......
https://chimpreports.com/updf-dismisses-un-report-alleging-atrocities-in-south-sudan/