Недавно делал быстрый прототип асинхронного приложения в котором требовалось вызывать много синхронного кода. Да, я знаю, что это не лучший дизайн, но нужно было быстрое решение на один процесс и без очередей. Поэтому я выполнял код в потоках.
Выглядело это примерно так:
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
🎇 The final round of the #MemeContest is here! The memes are beary bee hilarious, but only one can reign supreme! 🏆1000 BEE⚡️
✨VOTE NOW ON X✨
https://x.com/BeraSigHub/status/1808780316561322051
Meme Contest Winners: USDT Rewards Collection 💸
We’ve heard you loud and clear — many of you asked for USDT rewards, and we’re making it happen.
All 250 winners from the Meme Contest will receive their rewards in USDT equivalent!
Please fill out the form below to receive your prize.
🔗Google Form Link
🚨 Important:
🔵 Double-check all your info before submitting – you can only submit once
🔵 Only use a valid EVM wallet address (e.g. MetaMask, Trust Wallet)
🔵 Rewards will be sent in USDT (BEP20 / BNB Chain)
🚫 Do NOT submit TON or TRC20 addresses — they will not be accepted
We’re preparing the distribution — and…
More updates are coming later today about the upcoming Closed Beta launch.
Stay tuned, Forgers 👀
#DeckForge#ClosedBeta#MemeContest
Join the DeckForge Community:
🌐YouTube𝕏Twitter🎮Discord
👉Chat👉Announcements👉DeckForge
Meme Contest – Final Results
The community has spoken — and it's time to crown the champions.
After two weeks of chaos, creativity, and incredible humor, we’re excited to reveal the final leaderboard of our Meme Contest.
🔗Leaderboard – TOP-250 Memers
Prizes will be distributed this weekend
Huge thanks to every Forger who participated — your memes, energy, and wit made this one of the most fun events we've ever hosted.
But that’s not all...
Alpha Reveal Incoming
On July 10, our team will showcase the first Alpha build of DeckForge at one of the leading game dev conferences in Eastern Europe.
Over 20,000+ players are already waiting for the Closed Beta – and we’re almost there.
🔥 The Forge is heating up.
Next week, we’ll be dropping major updates, sneak peeks, and what's next for the community.
Stay sharp, Stay Forged.
#DeckForge#ClosedBeta#MemeContest
Join the DeckForge Community:
🌐YouTube𝕏Twitter🎮Discord
👉Chat👉Announcements👉DeckForge
👑New Meme Contest
👑
💰Reward : 100 USDT For Top 10 People🤑
👑Contest Link : Meme Contest
⭐Steps to take Part
⭐ Follow @dict00
⭐ Like RT Quite this tweet+comments @ 3 friends
⭐ Add your #DICT meme to the comments below
⭐ Must join Telegram Channel
⭐ Send proof in Telegram group with retweet link
#MemeContest#100USDT#USDT#giveaway
🔔Note: Please do your own research (DYOR) before joining to any project.Don't send any fee or penny without doing own research
✈️Business:@ProjectPromoters✅
#MEMECONTEST#PHILMEMECONTEST
MEME & STICKER COMPETITION ALERT!👀👀👀
🎉🎉Our BIGGEST PRIZE POOL YET 💯💯
🙌🏼500 WINNERS
💰500,000 $PHL Token prize pot | 1000 $PHL per winner💰
🤩Have your designs used by a GLOBAL COMMUNITY
All you need to do is:
✅Design a meme or sticker for our #PHILApp and #Philcoin social media channels
✅Tag us on social media for a chance to win using #PHILNation
T&Cs apply
Competition ends Friday 11th, Feb. 2022
TELEGRAM GROUP | TELEGRAM CHANNEL | TWITTER | FACEBOOK | LINKEDIN | INSTAGRAM
💎$TMONK #RoadToMEMELANDIA# Contest💎
1️⃣st 100 token $TMONK
2️⃣st 70 token $TMONK
3️⃣st 30 token $TMONK
👀5 more participants will get WL spot in upcoming private sale of our partner ATHENA DexFI
How to enter the #contest :
1️⃣Follow @ https://x.com/TMonkPartners?s=35
2️⃣ Join telegram groups:
✔️https://t.me/RoadToMEMELANDIA
✔️
https://t.me/TmonkAnnouncements
3️⃣ Under the tweet of this contest
present on X https://x.com/TMonkPartners?s=35
Answer with a post with original and funny TMONK memes ( Video, gif or stickers are welcome as well )
You can create as many as you want .
Share your post to atleast 3 real yours friends(we will check if you don’t respect this rule or share to someone that isn t your friend)
Remember to put also
@ton_blockchain and @telegram and to use hashtags #MemeContest#freedom#crowdfunding#charity#tmonk
4️⃣. Submit your X entry under the comments of relatived post of this two groups
🖥https://t.me/RoadToMEMELANDIA
🖥
https://t.me/TmonkAnnouncements
The 8️⃣ winners will be chosen by the team
Valid for 4️⃣ days
Ends 25.04.2024 15 utc UTC
GOOD LUCK TMONKERS