Недавно делал быстрый прототип асинхронного приложения в котором требовалось вызывать много синхронного кода. Да, я знаю, что это не лучший дизайн, но нужно было быстрое решение на один процесс и без очередей. Поэтому я выполнял код в потоках.
Выглядело это примерно так:
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
🚀Чарльз Хоскинсон: Cardano обрабатывает более 134 000 транзакций в секунду
🔸 Блокчейн Cardano установил новый рекорд по пропускной способности. По словам лидера команды разработчиков Чарльза Хоскинсона, благодаря обновлению Hydra, сеть теперь может обрабатывать до 134 464 транзакций в секунду.
🔸 Базовый актив ADA стал одним из лидеров текущего альтсезона. За неделю криптовалюта выросла более чем на 25%, а ее капитализация превысила $42 млрд на фоне высокой адресной активности.
🔸 Хоскинсон отметил, что обновление Hydra значительно повысила пропускные возможности сети. Разработчики ожидают, что это обновление ускорит внедрение ADA на криптовалютном рынке, обеспечивая более быструю и дешевую обработку транзакций.
#Cardano#ADA#Hydra
АкадемияGarantex|Garantex Announcements|ВКонтакте|YouTube
🪐 In the constellation Hydra, astronomers have found R Hydrae, a star that pulses in brightness over a period of about 385 days. This "Mira variable" expands and contracts like a cosmic heartbeat, changing size and light output as it nears the end of its life, giving scientists clues about the future fate of our own Sun. ✨
#stars⚡#hydra⚡#pulsation⚡#nasa⚡#galaxy⚡#astronomy⚡#universe⚡#cosmos⚡#space
👉subscribe Universe Mysteries
🪐 The galaxy ESO 510-G13, located about 150 million light-years away in the Hydra constellation, has a warped, twisted disk that gives it a bizarre, "bent" appearance. Scientists think this unusual shape was caused when ESO 510-G13 merged with a smaller galaxy, distorting its spiral arms and creating a dramatic ripple through its structure—making it one of the most visually striking examples of cosmic collisions turning galaxies into real oddities. ✨
#galaxies⚡#collisions⚡#hydra⚡#nasa⚡#galaxy⚡#stars⚡#astronomy⚡#universe⚡#cosmos⚡#space
👉subscribe Universe Mysteries
👉more Channels
Hydra, a tiny freshwater animal, can theoretically live forever if nothing eats or kills it. They don't age because they keep regenerating cells.
🧬
[Read more]
@googlefactss#Hydra#Immortal#Regeneration#Science