Недавно делал быстрый прототип асинхронного приложения в котором требовалось вызывать много синхронного кода. Да, я знаю, что это не лучший дизайн, но нужно было быстрое решение на один процесс и без очередей. Поэтому я выполнял код в потоках.
Выглядело это примерно так:
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
В рилсах завирусился легчайший способ делать идеальные фото. Чтобы максимально показать шикарный фон, нужно просто отойти на 10 шагов назад и сфотографировать с зумом 2х, 5х или 8х. Так в кадре будете не только вы, но вся красота вокруг.
JDMax#GoodToKnow
В рилсах нашли полезную штуку: гамак для ног в самолёт
Гамак поможет пережить перелёты любой длины. Стоит такой ₽429 на маркетплейсах.
JDMax#GoodToKnow
5 приложений для СДВГшников
Появилась подборка, помогающая держать концентрацию и не теряться в задачах.
Избавляемся от залипаний и фокусируемся.
JDMax#GoodToKnow
Фильтр для воды меняет вкус алкоголя — лайфхак действительно работает. Графин нейтрализует горечь и другие неприятные нотки в спиртных напитках благодаря активированному углю.
Авторы видео профильтровали водку и шнапс, а затем выпили по рюмке напитков: резкий спиртовой привкус полностью пропал.
JDMax#GoodToKnow
Информация для тех, кто планируют отдых в Турции — в Яндекс Картах теперь есть цены на весь транспорт Стамбула, от метро до паромов и фуникулеров.
При построении маршрута приложение рассчитывает стоимость всей поездки с учетом пересадок, а также показывает цену проезда отдельно по каждому виду транспорта.
JDMax#GoodToKnow
#goodToKnow
Volontyorlik = ko‘ngillilik, nafaqat jamiyatga, balki volontyorning o‘ziga ham foyda keltiradi 🖐❤
➕ Volontyorlar=ko‘ngillilar o‘zlariga qiziq bo‘lgan ishlariga kuch va bilim sarflash orqali ma‘nan rivojlanadilar, o‘zlarida "soft skills" ko‘nikmalarini shakllantiradilar. Volontyorlar duo, tabassum, baxtli chehralar, rahmat so‘zlarini bildirgan ko‘zlaridan kuch olishadi.
➕ Volontyorlik faoliyatidan jamiyat oladigan foyda ham aniq - dunyo bo‘ylab bir qator tashkilotlar moliyaviy qiyinchiliklarni kechirgan, shu o‘rinda, aholining himoyaga muhtoj qatlami alohida e‘tiborga sazovor bir paytda, volontyorlar o‘zlarini kerakli his qiladigan payt kelgan, volontyorlik faoliyati jamoatchilik e‘tiborini bugungi kun muammolariga qaratadi, ayrim hollarda esa bu muammolarni yechimiga aylanadilar.
#volontyorlarOilasi#uva
#bizBirgamiz
🖐❤️🖐💚🖐💙🖐❤️🖐💚🖐💙🖐❤
Volontyorlar uchun saralangan yangiliklar ⬇️
Telegram | Instagram | Facebook | web
Word of the day
📚 Obsolete
📝 Meaning: old-fashioned, smth that is not used anymore
✅ Bowing to greet a lady is now an obsolete custom.
#ieltsnine, #newword, #wordoftheday, #expedientrubric, #goodtoknow, #nicevocabulary, #lexicalresource, #improveyourielts
No show дегеніміз не?ℹ️
Сатылымда билеттер жоқ болып, ұшақ бортында бос орын болғанын байқадыңыз ба?
Ондай қашан болуы мүмкін?
✅Жолаушылар әуетасымалдаушыға хабар бермей, рейске келмеген жағдайда
✅Жолаушылар рейске кешігіп келген кезде
❗️Бұл кезде билет күйіп, билет құны қайтарылмайды.
Егер жолаушы ұшып шығу туралы шешімін өзгертсе, онда тариф шартарына сай ұшуға кем дегенде 2 сағат қалғанда брондауды өзгертіп немесе ақша қайтарымын орындай алады
*брондауды өзгерту немесе қайтарым жасау үшін, билетті сатып алған жерге хабарласу керек
•
Что такое no show? ℹ️
Замечали ли вы, что иногда авиабилетов на определённый рейс не бывает, но во время полёта некоторые места все-таки пустуют?
Такое возможно когда...
✅Пассажиры не пришли на рейс, не уведомив авиаперевозчика об этом
✅Опоздали на рейс
❗️В этих случаях билеты пассажиров сгорают, а их стоимость не возвращается.
В случае, если пассажир меняет своё решение о вылете, то он может внести изменения в бронирование или осуществить возврат по условиям тарифа не позднее, чем за 2 часа до вылета
*в случае перебронирования или возврата билета обращаться по месту приобретения
•
What is no show? ℹ️
Have you ever noticed that sometimes for a certain flight the tickets are totally sold out, but during the flight some seats are still empty? It's possible when...
✅Passengers did not show up for a flight without notifying the carrier about it
✅Passengers were late for a flight
❗️In these cases, passenger’s ticket will be void and it's cost will not be refunded.
Therefore please be noted that if you need to make changes in your ticket you can do it no later than 2 hours before the departure according to the rules of the used fare type.
*In case of a rebooking or refund, please contact the point of sale where you have purchased it
•
#flyarystan#lowfares#lowcostairline#travel#сапар#саяxат#путешествие#билет#самолеты#ұшақтар#aircraft#білгенабзал#полезнознать#goodtoknow