Недавно делал быстрый прототип асинхронного приложения в котором требовалось вызывать много синхронного кода. Да, я знаю, что это не лучший дизайн, но нужно было быстрое решение на один процесс и без очередей. Поэтому я выполнял код в потоках.
Выглядело это примерно так:
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
VizorLabs принял участие в крупнейшей ИТ-выставке на Ближнем Востоке
🇦🇪 Компания «Визорлабс» представила свои инновационные решения в Дубае на выставке GITEX Global 2024 — крупнейшей технологической экспозиции на Ближнем Востоке и одной из самых значимых в мире. Мероприятие, площадь которого сопоставима с 33 футбольными полями, объединило компании из более чем 180 стран.
Директор по маркетингу «Визорлабс» Станислав Зиганшин отметил:
«Мы участвуем в выставке уже второй раз, и в этом году наблюдаем еще больший интерес к технологиям компьютерного зрения. Продолжая продвигать компанию и отечественные разработки в регионе Персидского залива, мы уверенно расширяем наш портфель проектов на Ближнем Востоке».
🌍 В 2024 году GITEX Global проводится в 44-й раз, уделяя особое внимание достижениям в области искусственного интеллекта. Для VizorLabs выставка обещает стать важной вехой на пути к укреплению своих позиций за рубежом.
#выставка#GITEX2024#мероприятия
🚀 LOGAREON на выставках GETEX и GITEX: будущее логистики уже наступило!
Компания LOGAREON представила свои самые передовые решения для автоматизации и роботизации логистики сразу на двух знаковых IT-выставках — GETEX в Алматы и GITEX! 🤖✨
На открытии GETEX выставку торжественно посетил президент Республики Казахстан Касым-Жомарт Токаев, отметив, что цифровизация — это мощный толчок для развития экономики страны и выхода на новый уровень. 🇰🇿💡
💡 Почему это важно?
Автоматизация и инновации — уже не просто тренд, а необходимость для бизнеса, который хочет быть быстрее, эффективнее и сильнее конкурентов.
LOGAREON помогает компаниям:
- ⚡ Сократить расходы и снизить себестоимость.
- 📈 Повысить производительность.
- 🤖 Легко внедрять роботизированные системы и цифровые решения.
🔥 GITEX: второй день — взрыв технологий и новых знакомств!
Вчера на GITEX, организованной Московским международным экспортным центром, наши решения вызвали настоящий ажиотаж среди предпринимателей и производителей Казахстана! Было много обсуждений, вопросов и крутых идей для будущего сотрудничества. 💼💡
Огромное спасибо МЭЦ за организацию такого мощного мероприятия! 🙌
📅 Завтра — третий день GITEX! Будет ещё больше драйва, инсайтов и возможностей для бизнеса!
📍 Ждём всех по адресу:
Атакен Экспо Бакшасарай, ул. Климента Тимирязева, 42к1
📍 Как добраться
Присоединяйтесь, будет мощно! 🔥
#LOGAREON#GETEX#GITEX2024#Алматы#Автоматизация#Роботизация#WMS#WCS#RMS#Инновации#Экспорт#Технологии#БизнесКазахстан#МЭЦ