Недавно делал быстрый прототип асинхронного приложения в котором требовалось вызывать много синхронного кода. Да, я знаю, что это не лучший дизайн, но нужно было быстрое решение на один процесс и без очередей. Поэтому я выполнял код в потоках.
Выглядело это примерно так:
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
1️⃣1xBet Official Player Account — Special Promo
🌍
Promo Code: WORLDCUPAU
1️⃣https://bit.ly/Pro-Official-1xbet
🎯Exclusive Elite Benefits:
🎟Free Entry into the Million Dollar Jackpot Lottery — win up to $1,000,000
💰 Guaranteed minimum $100 bonus balance from the lottery
🔄40% Cashback on every deposit until 1 January 2026
📒Winners Announced: 1 January 2026
🔍Offer Valid Worldwide (in legal 1xBet markets)
⚠️Responsible Play: Gambling involves risk. Only play if it’s legal in your area and you are of legal age. Set limits, play smart.
💛
1️⃣𝐎𝐅𝐅𝐈𝐂𝐈𝐀𝐋 1xBet 𝐕𝐄𝐑𝐈𝐅𝐈𝐄𝐃 𝐂𝐇𝐀𝐍𝐍𝐄𝐋
♥️
🛡Your Only Trusted Source – 100% scam-free, protected, and authorized.
⚠️Important Security Notice
For all official deals, connect only with our Premium Verified Manager.
📩@Worldcupau⭐
#Worldcupau#1xBet#Giveaway#sportsbook#Football#AI#Fifa#CryptoDealer#BMW#1xBetBonus
1️⃣1xBet Official Player Account — Special Promo🌍
Promo Code: WORLDCUPAU
1️⃣https://bit.ly/Pro-Official-1xbet
🎯Exclusive Elite Benefits:
🎟Free Entry into the Million Dollar Jackpot Lottery — win up to $1,000,000
💰 Guaranteed minimum $100 bonus balance from the lottery
🔄40% Cashback on every deposit until 1 January 2026
📒Winners Announced: 1 January 2026
🔍Offer Valid Worldwide (in legal 1xBet markets)
⚠️Responsible Play: Gambling involves risk. Only play if it’s legal in your area and you are of legal age. Set limits, play smart.
💛1️⃣𝐎𝐅𝐅𝐈𝐂𝐈𝐀𝐋 1xBet 𝐕𝐄𝐑𝐈𝐅𝐈𝐄𝐃 𝐂𝐇𝐀𝐍𝐍𝐄𝐋♥️
🛡Your Only Trusted Source – 100% scam-free, protected, and authorized.
⚠️Important Security Notice
For all official deals, connect only with our Premium Verified Manager.
📩@Worldcupau ⭐
#Worldcupau#1xBet#Giveaway#sportsbook#Football#AI#Fifa#CryptoDealer#BMW#1xBetBonus
1️⃣1xBet Media Partnership 2025🌍
Are you a Telegram admin, influencer, content creator, or website owner? Join 1xBet, a global betting leader with 50M+ users in 150+ countries, and turn your audience into steady income.
👜Benefits:
– Long-term official contract
– Monthly crypto payments — fast & secure
– High rates + 10% monthly growth for consistent results
📣 Platforms: Telegram • Instagram • TikTok • YouTube • Websites
💛1️⃣𝐎𝐅𝐅𝐈𝐂𝐈𝐀𝐋 1xBet 𝐕𝐄𝐑𝐈𝐅𝐈𝐄𝐃 𝐂𝐇𝐀𝐍𝐍𝐄𝐋♥️
🛡Your Only Trusted Source – 100% scam-free, protected, and authorized.
👑𝐉𝐨𝐢𝐧 𝐭𝐡𝐞 𝟏𝐱𝐁𝐞𝐭 𝐄𝐥𝐢𝐭𝐞👑
Opportunities in:
✨ Advertising
✨ 1xPartners Affiliate Program
✨ Bank Transfer Agent
✨ E-Wallet Agent
✨ Crypto Dealer ✅
⚠️Important Security Notice
For all official deals, connect only with our Premium Verified Manager.
📩@Manager_1xBet⭐
#Worldcupau#1xBet#Giveaway#sportsbook#Football#AI#Fifa#CryptoDealer#BMW#1xBetBonus