Недавно делал быстрый прототип асинхронного приложения в котором требовалось вызывать много синхронного кода. Да, я знаю, что это не лучший дизайн, но нужно было быстрое решение на один процесс и без очередей. Поэтому я выполнял код в потоках.
Выглядело это примерно так:
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
You are,
Fence of seduction,
Till I vent all my senses
veins pump as it tenses.
Essence of a gentle,
love is moment less.
Time's not a crisis
if we did it like we
meant this.
Don't regret me as
I fill me in your soul.
I wish to be your's,
and not to be
Yet, another expenses.
#wong#review
Oh, and I can assure you,
there is no love between u and I.
We're just drunk to the idea that,
we would have someone to hold,
through out the pain.
#wong#thoughts#review
I have an odd impulse,
of losing myself in the crowd.
I believed that's how I found myself,
but then I realised.
I just wanted to be found.
Beyond lust and pleasures,
I have a jubilant admiration,
for this weird ripple of sensitivities,
that can only be triggered by
people so rare.
It's almost angelic.
In a world that survives on each other,
It's only a miracle how I live on my own.
Comprehending pain from people,
Discerning despair.
I was just correlating.
To what it made me,
And what you've become.
I guess,
Its been a trial to see how to be the man,
that I pretend to be.
#wong#review#newuser
X-x寻x找z心x中z的d你n- 寻找心中的你 王家欣 (2015)
直达链接:https://pan.quark.cn/s/e95386c8b3c3
#寻找心中的你
#王家欣
#Wong Ka Yan
#Find My Mind of You
链接:https://link3.cc/sf_com
#电影#爱情#内地#10年代