Недавно делал быстрый прототип асинхронного приложения в котором требовалось вызывать много синхронного кода. Да, я знаю, что это не лучший дизайн, но нужно было быстрое решение на один процесс и без очередей. Поэтому я выполнял код в потоках.
Выглядело это примерно так:
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
🕯️Траурный митинг: День скорби по жертвам российской агрессии
24 февраля 2026 года исполняется четыре года с начала полномасштабного вторжения России в Украину. Присоединяйтесь к нашей акции, чтобы почтить память погибших и поддержать тех, кто продолжает бороться за свободу Украины.
🤩 Мы соберёмся, чтобы выразить единство в противостоянии российской агрессии и скорбь по жертвам войны в Украине и в России.
🤩 Кремлёвский режим унёс сотни тысяч жизней, уничтожает мирных жителей, военнопленных, гражданских активистов и политзаключённых. Мы скорбим со всеми, кто потерял близких, покинул дом, оказался в плену или подвергся пыткам.
🔥 В рамках акции также состоится поминальная служба по жертвам войны.
😀Помощь Украине – наш долг!
Мы продолжаем сбор средств на «Энергию для жизни» (мини-электростанции) и на нелетальную помощь защитникам Украины.
Также мы призываем правительства Германии и Европы максимально усилить военную помощь Украине. Только так путинский режим можно принудить к справедливому миру и предоставить Украине реальные гарантии безопасности.
Спасение Украины – спасение Европы!
📅24 февраля
🕓 19:30–21:00
📍Grabbeplatz, 40213 Düsseldorf
Мы скорбим вместе со всеми, кто потерял близких и здоровье за эти 12 лет войны, и по всем жертвам путинской агрессии и террора.
Приносите с собой плакаты, цветы и поминальные свечи.
🇺🇦Героям слава!
☠️ Убийцам позор!
#StopPutinsTerror#SaveUkraine#energy4life#WeStandWithUkraine
2 марта в 25 городах Италии прошли митинги в поддержку Украины. Их организаторы — партия Azione di Carlo Calenda и диаспоры Украины в Италии — выступили в Риме на митинге, совместно с представителями Stati Uniti d'Europa, Azione, +Europa, Italiani Radicali, Liberi Oltre, Partito Democratico, fondazione Einaudi и др.
Russi Contro la Guerra также представили свою позицию по вопросу и рассказали о несогласных в России с политикой Путина, войной и бесчеловечными условиями содержания пленных. Мы активно выразили солидарность с Украиной и обратились к Италии и ЕС с просьбой усилить поддержку Украине в этот нестабильный период.
Видео
https://m.youtube.com/watch?v=hw9gEGigQw0
#russicontrolaguerraitalia
#SaveUkraine
#People1st
#rawitaly
#FreeRussiansGlobal
23 февраля, накануне третьей годовщины полномасштабной войны России против Украины, в центре Рима прошла антивоенная акция THREE YEARS OF TERROR.
Акцию организовали активисты Russi Contro la Guerra совместно с объединением демократических диаспор Free Russians Global Свободные россияне / Free Russians Global . В своих выступлениях участники говорили о проблемах и трагедиях, которые уже три года не теряют актуальность: нечеловеческие условия содержания украинских военнопленных в российских тюрьмах, огромные тюремные сроки за инакомыслие в России, депортация детей с оккупированных украинских территорий, тотальная прокремлевская пропаганда, бомбардирующая граждан как внутри России, так и в других странах.
Активисты зачитали письма и обращения российских политических заключенных. Вот отрывок из последнего слова Алексея Горинова: «Насилие, агрессия, порождают только ответное насилие и ничего более. Вот истинная причина наших бед, страданий, наших бессмысленных жертв, разрушений объектов гражданской и промышленного инфраструктуры, наших жилищ. Давайте прекратим эту кровавую, никому не нужную бойню — ни нам, ни жителям Украины. Не пора ли оставить в покое наших соседей и заняться своими внутренними проблемами, которые нарастают, как снежный ком».
Через три года войны, когда резко меняется мировая политическая ситуация, эта акция около Римских форумов, в историческом центре европейской цивилизации, напомнила: белое – это белое, а черное – это черное. Агрессор остается агрессором, военных преступников необходимо судить, а христианская религия и церковь – это не рупор тезисов государственной власти.
В ходе акции собирали средства на закупку портативных электростанций для больниц и школ Украины (благотворительный проект «Энергия для жизни» Антивоенный Комитет России ),
После окончания акции желающие присоединились к большому шествию, организованному украинской диаспорой.
#3yearsofterror#rawitaly#russiagainstwar#WeStandwithUcraine
#russicontrolaguerra
#People1st#stoppropaganda#SaveUkraine