Недавно делал быстрый прототип асинхронного приложения в котором требовалось вызывать много синхронного кода. Да, я знаю, что это не лучший дизайн, но нужно было быстрое решение на один процесс и без очередей. Поэтому я выполнял код в потоках.
Выглядело это примерно так:
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
Обязательно посетите в Хельсинки церковь в скале⛰️💒
📍Temppeliaukion kirkko
Финны настолько любят рок, что даже устраивают метал-мессы в лютеранских церквях🎸⛪️
Именно в этой церкви в 2006 году прошла первая в Финляндии металлическая месса – церковные песнопения исполнялись под аккомпанемент рок-музыкантов!
Rock concert in the rock church🎸💒
#helsinki#temppeliaukiokirkko
“Quello dei bombardamenti su #Belgrado è un lascito vergognoso di illegalità, di manipolazioni, distruzione e di uccisione di persone innocenti. Da difensiva, la #Nato divenne un’alleanza offensiva, stracciando la Carta delle Nazioni Unite, il documento di #Helsinki, l’atto istitutivo del 1949, le Costituzioni di alcuni paesi membri, il ruolo del Consiglio di Sicurezza dell’#Onu. Ma è un lascito vergognoso anche per gli alleati che nel 1999 parteciparono all’aggressione della #Serbia. Questa macchia può essere rimossa soltanto ammettendo che a condurre la criminale aggressione è stata la disastrosa e immorale politica #Clinton,#Albright#Blair: un’aggressione che non fu “una piccola guerra in #Kosovo”, ma un punto di svolta nelle relazioni globali e un passo decisivo verso la distruzione dell’assetto internazionale emerso dopo la seconda guerra mondiale.” Dalla mia intervista a Živadin Jovanović (Ministro degli Esteri della Repubblica Federale di #Yugoslavia all'epoca dei bombardamenti Nato su Belgrado) pubblicata da Limes, rivista italiana di geopolitica a vent'anni da quei fatti.
http://www.limesonline.com/vent-anni-guerra-nato-serbia-kosovo-1999-conseguenze-intervista-jovanovic/113158
✈️ Finnair — на грани: Финляндия может продать национального авиаперевозчика
🇫🇮 Крупнейшая авиакомпания Финляндии Finnair оказалась в тяжелом положении:
— закрытие воздушного пространства России ❌
— устаревший флот 🛬
— растущие долги 💸
— массовые отмены рейсов из-за забастовок 👷♂️🪧
📰 По данным Helsingin Sanomat, в Хельсинки всё чаще неофициально обсуждают возможность продажи Finnair. Однако политические риски высоки — журналисты называют такой шаг «самоубийственным».
📉 За 5 лет долги Finnair в несколько раз превысили её стоимость, а последние протесты персонала привели к отмене 100+ рейсов и убыткам в 40 млн евро.
🌏 Ранее Finnair связывала Европу и Азию кратчайшими маршрутами через Россию, но теперь эта ниша утрачена и занята конкурентами.
⚠️ Эксперты сомневаются, что правительство будет спасать авиакомпанию в условиях роста оборонных расходов и ограниченного бюджета.
😔 Finnair остаётся национальной гордостью Финляндии, но, похоже, государству сейчас не до символов.
#Finnair#Финляндия#авиакризис#авиаперевозки#Европа#авиация#финансы#авиакомпания#новостиавиации#гражданскаяавиация#Helsinki#кризис#Азия#Европа#российскоевоздушноепространство