Недавно делал быстрый прототип асинхронного приложения в котором требовалось вызывать много синхронного кода. Да, я знаю, что это не лучший дизайн, но нужно было быстрое решение на один процесс и без очередей. Поэтому я выполнял код в потоках.
Выглядело это примерно так:
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
#Ethiopia: Report warns of arbitrary detentions, growing restrictions on media in Addis Ababa
-------
A new report by Human Rights First has raised concerns over alleged arbitrary detentions and increasing restrictions on media in #Addis_Ababa, particularly during periods of major international events.
The report, titled “Situational Analysis of Human Rights in Addis Ababa,” states that security forces carried out “pre-emptive detentions” across several parts of the capital without due process.
According to the findings, detentions were recorded in sub-cities including #Yeka, #Bole, and #Akaki_Kality, where individuals were held for more than a week without being charged or appearing before court.
In addition, the report highlighted what it described as a growing pattern of restrictive actions against media between 2025 and early 2026.
Read more: https://addisstandard.com/?p=55925
News: Report tracks #UAE-linked cargo flights to #Ethiopian military base amid regional power struggle
A cargo aircraft previously linked to the supply of weapons to armed groups in #Sudan has conducted multiple flights to Ethiopia in recent weeks, according to an exclusive investigation by the UK-based outlet Middle East Eye (MEE), raising questions about Ethiopia’s role in intensifying regional rivalries tied to the war in Sudan.
MEE reported that an Antonov An-124 cargo plane operated by UAE-based Maximus Air, and allegedly linked to Emirati military logistics, made repeated flights between #Abu_Dhabi and #Harar_Meda airbase, the main base of the Ethiopian Air Force.
Flight-tracking data reviewed by the outlet shows at least four trips to Harar Meda between 3 and 17 January, including one flight that later continued to Addis Abeba’s #Bole International Airport before departing for #Europe and #Asia.
While the purpose of the flights remains unclear...
Read more: https://addisstandard.com/?p=54681
News: #Ethiopian Airlines confirms the purchase of nine #Boeing 787-9 Dreamliner, partners with Bridgestone on airport safety
Ethiopian Airlines Group has confirmed the purchase of nine Boeing 787-9 #Dreamliner aircraft while launching a collaboration with #Bridgestone Corporation to enhance airport safety at Addis Ababa #Bole International Airport.
The airline said the newly ordered Boeing 787-9 jets, scheduled for delivery between 2031 and 2033, will support network expansion and strengthen international connectivity. This order follows
Ethiopian Airlines Group CEO #Mesfin_Tasew said the order demonstrates the carrier’s strategy to modernize its fleet with advanced, fuel-efficient aircraft while improving customer service.
Boeing’s Vice President of Commercial Sales and Marketing for Africa, #Anbessie_Yitbarek, described the 787 Dreamliner family as a “game-changer” for connecting Africa with global markets.
In parallel with its fleet expansion,...
Read more: https://addisstandard.com/?p=54671