Недавно делал быстрый прототип асинхронного приложения в котором требовалось вызывать много синхронного кода. Да, я знаю, что это не лучший дизайн, но нужно было быстрое решение на один процесс и без очередей. Поэтому я выполнял код в потоках.
Выглядело это примерно так:
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
🔍 Взгляд на процесс разгрузки судна через стеклянный пол кабины причального крана-перегружателя (STS) предоставляет уникальную перспективу работы крупнейшего морского контейнерного терминала России - Владивостокского морского торгового порта (FESCO).
📦 На экране видно, как контейнеры аккуратно поднимаются и перемещаются, обеспечивая эффективную разгрузку с судна. Высокая точность и скорость работы крана являются ключевыми факторами для поддержания ритма операций.
🌊 Владивостокский морской торговый порт, расположенный в стратегически важном месте на Дальнем Востоке, активно работает с международными судами, обеспечивая страны Азиатско-Тихоокеанского региона необходимыми грузами. С учетом современных технологий и подходов, таких как автоматизация и цифровизация, разгрузка в порту осуществляется быстро и безопасно.
____
#ТИСЛОДЖИСТИК🦏
#Логистика
#STS
#FESCO
🚢DP World усиливает терминал в Саутгемптоне поставкой новых STS-кранов.
Компания DP World направляет на терминал порта Саутгемптон - два новых контейнерных крана STS, произведенных ZPMC, которые доставляются из Китая на тяжеловозном судне "Zhen Hua 28".
Поставка является частью программы стоимостью £60 млн, предусматривающей установку четырёх кранов.
Новые краны поставляются полностью собранными и рассчитаны на обслуживание крупнейших контейнеровозов. С грузоподъемностью 65 тонн и вылетом стрелы 72 метра они способны выполнять "quad-lift" операции, одновременно перемещая два 40-футовых контейнера, что существенно повышает производительность терминала.
С отраслевой точки зрения инвестиция отражает продолжающийся тренд укрупнения контейнерного флота и необходимость модернизации портовой инфраструктуры. Повышение производительности кранового оборудования напрямую влияет на скорость обработки судов и оптимизацию грузопотоков, особенно на ключевых маршрутах Азия–Европа.
Рост объемов перевалки в Великобритании подтверждает актуальность таких вложений: терминал порта Саутгемптон превысил 2 млн TEU в 2025 году, тогда как London Gateway продемонстрировал значительный рост, усиливая позиции DP World на рынке контейнерных перевозок страны.
📌DP World — основана в 2005 году, глобальный портовый оператор, принадлежит инвестиционной компании Dubai World, контролируемой правительством Дубая (ОАЭ).
#ports#container#STS#logistics#shipping
Готовы к новому сезону?😁
Дадада?Нетнетнет?Ну не знаю!?
Делитесь!😉
И всем огромное спасибо сегодня за тонну тепла на встрече в @cdm_moscow в компании с @start.ru ❤️Мы Вас очень любим Дорогие Наши Зрители!✨
#папиныдочки#новыйсезон#сериал#платформа#start#sts#стс#комедия#comedy#семейныйсериал#папиныдочкиновые#moodoftheday#photooftheday#greenlove#saturday#actress#мирославакарпович#petitefemme#mira