Недавно делал быстрый прототип асинхронного приложения в котором требовалось вызывать много синхронного кода. Да, я знаю, что это не лучший дизайн, но нужно было быстрое решение на один процесс и без очередей. Поэтому я выполнял код в потоках.
Выглядело это примерно так:
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
Day One #Token2049
Our CEO Star_OKX takes the stage at TOKEN2049
The new money era is here:
✅ Everything onchain
✅ Self-custody first
✅ Verify before trust
OKX is building this future - one wallet, one transaction at a time.
Our Socials:
⚜️TG | DC | Wallet TG | Wallet Announcement | OKX on Spotify | Twitter/X | YouTube
‼️Please check the authenticity of all OKX links or channels at OKX channel verification
Singapore, lights on. #Token2049
Yesterday, Star_OKX takes the big stage and Haider brings us the fireside chat.
Stay locked, fam 👀
Our Socials:
⚜️TG | DC | Wallet TG | Wallet Announcement | OKX on Spotify | Twitter/X | YouTube
‼️Please check the authenticity of all OKX links or channels at OKX channel verification
Our CEO
Star_OKX
takes the stage at #TOKEN2049
The new money era is here:
✅ Everything onchain
✅ Self-custody first
✅ Verify before trust
OKX is building this future - one wallet, one transaction at a time.
Still day one.
Check out now👈
Our Socials:
⚜️TG | DC | Wallet TG | Wallet Announcement | OKX on Spotify | Twitter/X | YouTube
‼️Please check the authenticity of all OKX links or channels at OKX channel verification
The BNB Chain Incubation Alliance, Singapore agenda is here 🤩
Join us at #Token2049: https://lu.ma/m91xxlbk
This event is sponsored by $WHY, Lorenzo Protocol, D11 Labs, Seraph, Xterio, Solv & Particle Network
Join us at #Token2049 as we continue our mission to onboarding the next billion Web3 users at BNB Incubation Alliance, Singapore 🇸🇬.
Be part of the movement via the link below 👇
https://lu.ma/m91xxlbk
💖 We're thrilled to announce that we'll be part of the exclusive #TOKEN2049 side event, 'DeFi 2049 – Beyond THE Horizon', co-hosted by our partner DEX, THENA, & DeThings! 🎙️
Join us alongside BNB chain, Simon's Cat, Orbs network, Lista, and many more projects!
🧵 Learn more: lu.ma/h9w9yxww
🚀#TOKEN2049 Dubai wrapped up a few impactful days of ecosystem insights and momentum.
VCs remain selective, but capital is shifting towards liquid opportunities, AI infrastructure, and RWAs.
Sui Foundation saw strong engagement from builders and investors, Sonic Labs is gaining traction, Falcon Finance marked its public launch, and there’s much more to unpack 🙌🏼
Read the full recap for detailed insights — and find out where to meet us next!
Guess where we are 🐤✨️
It's been a busy #token2049 and we are not stopping!
Up next, we are at Algorand Royale where our Business Partner of Ecosystems, Alessia Baumgartner, will be sharing on a panel "How to survive and thrive as a Web3 company" 🙌🔥
Join us here 🤩
Excited to be one of the co-hosts and partners of this reception happening alongside #Token2049 in 🇸🇬!
Let's get connected and build together 🫡⚡
Date: 17th September, 2024
Time: 6PM - 10PM
Don't wait, register here🔗
KBW has been a blast 🐥✨️
It's been an amazing night hosting all of our guests at DWF Labs Haus 🎉
We hope you enjoyed your time with us and we'll see you again at our next event 🫡🔥
Next stop 🇸🇬 here we come! #TOKEN2049