Недавно делал быстрый прототип асинхронного приложения в котором требовалось вызывать много синхронного кода. Да, я знаю, что это не лучший дизайн, но нужно было быстрое решение на один процесс и без очередей. Поэтому я выполнял код в потоках.
Выглядело это примерно так:
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
🛡️ Protecting the Forge: ANTIFRAUD System Launch
As DeckForge grows into a massive global project with millions of players, competitive PvE & PvP modes, guilds & a thriving esports arena, one thing remains unchanged — our commitment to fair play and economic integrity.
As we’ve said before, the in-game economy and balance are at the core of everything we build.
The most valuable in-game items will soon be tradable on the secondary market, where transparency and security are key.
That’s why we’re introducing our ANTIFRAUD system — designed to protect players from unfair actions, exploits & fraud attempts.
✔️ The system has successfully passed all internal checks and will go live later this week.
Stay Forged! 🔥
#DeckForge#FromTheForge#OpenBeta#FairPlay
Join the DeckForge Community:
🌐YouTube𝕏Twitter🎮Discord
👉Chat👉Announcements👉DeckForge
🚢Tug Network Team расширяется в Европе через Fairplay Towage.
Международный альянс буксирных операторов Tug Network Team (TNT) объявил о расширении в Европе благодаря присоединению гамбургской компании Fairplay Towage.
После присоединения Fairplay сеть TNT охватывает 113 портов в 13 странах и объединяет флот состоящий из более чем 200 буксиров.
Альянс, изначально созданный в 2024 году компаниями Group Ocean, Sulnorte и CPT Towage, был ориентирован на рынок Америк и теперь получает полноценное присутствие в Европе.
Fairplay Towage работает в 24-х европейских портах, включая Германию, страны Балтии, Польшу, Нидерланды и Бельгию, и располагает флотом более 100 современных буксиров**.
Участие компании усиливает сеть независимых буксирных операторов и расширяет доступ судовладельцев к буксирным услугам в ключевых портовых регионах.
Для портовой отрасли расширение TNT отражает тенденцию к консолидации и созданию глобальных сетей независимых операторов, способных конкурировать с крупными международными буксирными группами.
📌Fairplay Towage Group — немецкая буксирная компания, основанная в 1905 году в Гамбурге, одна из старейших компаний в секторе портового буксирного обслуживания.
Компания является частной и принадлежит группе Fairplay Towage Holding - входит в структуру частной группы под контролем семьи Кюне, то есть связана с Kühne Holding / Klaus-Michael Kühne.
#Towage#Ports#Tugboats#Fairplay#MaritimeServices