Недавно делал быстрый прототип асинхронного приложения в котором требовалось вызывать много синхронного кода. Да, я знаю, что это не лучший дизайн, но нужно было быстрое решение на один процесс и без очередей. Поэтому я выполнял код в потоках.
Выглядело это примерно так:
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
🔥NEW RELEASE🔥
😁Only Way Out: Dynamic Back Escapes By Brian Glick😁
➡️Unlock your path to freedom with Only Way Out: Dynamic Back Escapes by Brian Glick, one of the most sought-after instructors at BJJ Fanatics. Brian’s teaching ability is renowned for breaking down complex techniques into easily digestible steps, helping practitioners at all levels of Brazilian Jiu-Jitsu (BJJ) master the art of escaping back control.
➡️Whether you're a white belt or a seasoned competitor, Brian's step-by-step breakdowns will give you the tools to confidently escape back control in any situation
➡️This instructional covers a variety of dynamic back escapes, teaching you how to stay calm under pressure and develop the instincts needed to reclaim control.
$197😍$19.99😍
❗️Channel Info and FAQ (MUST CHECK BEFORE BUY)❗️
📱Payment: 📱📱📱
💰Submeta FOR FREE
🌈UFC Picks
👑MasterClass
✈️@bjjfanaticsinstructionals
#BrianGlick#BJJFanatics#NewWave#NoGi#Danaher
💁♀️Buy
💁♀️
🔥NEW RELEASE🔥
😁Master The Move: The Side Crucifix By John Danaher😁
➡️Unlock the power of the Side Crucifix with John Danaher in this must-have instructional video from his best-selling "Master The Move" series
➡️With clear, step-by-step instructions, John reveals the fundamental principles behind the Side Crucifix, a position that allows you to dominate your opponent with high-percentage attacks, all without requiring advanced athletic ability.
➡️If you want to improve your upper body submission game and finish your opponents with efficiency and precision, the Side Crucifix is your new go-to position
$197😍$19.99😍
❗️Channel Info and FAQ (MUST CHECK BEFORE BUY)❗️
📱Payment: 📱📱📱
💰Submeta FOR FREE
🌈UFC Picks
👑MasterClass
✈️@bjjfanaticsinstructionals
#JohnDanaher#BJJFanatics#NewWave#NoGi#Danaher
💁♀️Buy
💁♀️
🔥NEW RELEASE🔥
😁The Ultimate Guide To Creating Back Exposure By Luke Griffith😁
➡️Unlock the secrets to dominating your opponent’s back in Brazilian Jiu-Jitsu with The Ultimate Guide To Creating Back Exposure by Luke Griffith, one of the most promising talents to emerge from Team New Wave.
➡️In this exclusive instructional, Luke takes you through the critical principles and strategies behind creating back exposure, a pivotal aspect of the modern submission game.
➡️Whether you’re a white belt or a seasoned black belt, this guide will sharpen your ability to find and capitalize on back control from a variety of positions.
$147😍$14.99😍
❗️Channel Info and FAQ (MUST CHECK BEFORE BUY)❗️
📱Payment: 📱📱📱
💰Submeta FOR FREE
🌈UFC Picks
👑MasterClass
✈️@bjjfanaticsinstructionals
#LukeGriffith#BJJFanatics#NewWave#Danaher
💁♀️Buy
💁♀️
🔥NEW RELEASE🔥
😁Leg Locks Finishes By Helena Crevar😁
➡️Unlock the secrets to finishing leg locks with Leg Locks Finishes, the highly anticipated Brazilian Jiu-Jitsu instructional by the rapidly rising star of the sport, Helena Crevar.
➡️Her impeccable technique, precise attention to detail, and aggressive competition record make her the perfect guide to take your leg lock game to the next level.
➡️In this comprehensive instructional, Helena breaks down her favorite leg lock finishes, focusing on efficient setups, seamless transitions, and perfecting the art of submission under pressure.
$197😍$14.99😍
❗️Channel Info and FAQ (MUST CHECK BEFORE BUY)❗️
📱Payment: 📱📱📱
💰Submeta FOR FREE
🌈UFC Picks
👑MasterClass
✈️@bjjfanaticsinstructionals
#HelenaCrevar#WomenBJJ#Leglocks#NoGi#Danaher
💁♀️Buy
💁♀️
🔥NEW RELEASE🔥
😁Leg Lock Entries By Helena Crevar😁
➡️Unlock the power of leg locks with Helena Crevar's BJJ Instructional on Leg Lock Entries. As one of the fastest rising stars in Brazilian Jiu-Jitsu, Helena has been turning heads worldwide with her technical precision and mastery of the game
➡️Trained under the legendary John Danaher, Helena’s leg lock game is among the best in the world. This instructional video provides you with clear, step-by-step guidance on entries that will elevate your leg lock game to new heights.
➡️This is your opportunity to learn from one of the brightest talents in BJJ and take your leg lock entries from basic to lethal.
$197😍$14.99😍
❗️Channel Info and FAQ (MUST CHECK BEFORE BUY)❗️
📱Payment: 📱📱📱
💰Submeta FOR FREE
🌈UFC Picks
👑MasterClass
✈️@bjjfanaticsinstructionals
#HelenaCrevar#WomenBJJ#Leglocks#NoGi#Danaher
💁♀️Buy
💁♀️