Недавно делал быстрый прототип асинхронного приложения в котором требовалось вызывать много синхронного кода. Да, я знаю, что это не лучший дизайн, но нужно было быстрое решение на один процесс и без очередей. Поэтому я выполнял код в потоках.
Выглядело это примерно так:
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
🚢Tallink завершила «сложный» 2025 год с прибылью €17,3 млн.
Эстонская паромная группа Tallink Grupp сообщила о неаудированной чистой прибыли €17,3 млн ($18,7 млн) по итогам 2025 года. EBITDA составила €130 млн при выручке €765 млн.
К концу года компания эксплуатировала11 судов после продажи трёх единиц и сдачи ещё трёх в чартер.
По словам CEOПааво Нёгене, оптимизация флота позволила снизить базу затрат. Долговая нагрузка сокращена на €94 млн, выплаты по кредитам и процентам — около €113 млн. Предложен дивиденд €0,06на акцию.
Операционные показатели:
✔️ 5,5 млн пассажиров (3,6 млн — линия Эстония–Финляндия).
✔️ 1,4 млн — Финляндия–Швеция.
✔️ >245 тыс. грузовых единиц и >760 тыс. авто.
✔️ Инвестиции — €33 млн (модернизация паромов "Silja Serenade" и "Baltic Princess").
✔️ Срок полезной службы флота унифицирован до 45 лет.
Менеджмент отмечает влияние слабой экономики Финляндии и отсутствие господдержки в Эстонии, но фиксирует умеренное улучшение грузопотоков в начале 2026 года.
📌Tallink Grupp основана в 1989 году в Эстонии; публичная компания (Nasdaq Tallinn). Крупнейший акционер — инвестиционная компания Infortar AS, связанная с эстонскими предпринимателями.
#ferries#BalticSea#Tallink#maritimelogistics#shippingfinance
🚢Cool Carriers принимает первый рефрижератор серии нового поколения.
Кипрская компания Cool Carriers получила новое рефрижераторное судно “Snow Flower”, построенное на японской верфи Kitanihon Shipbuilding.
Судно стало первым в новой серии специализированных рефрижераторных универсальных реф-судов, заказанных компанией.
Каждое судно серии рассчитано на перевозку 5 000 паллет скоропортящихся фруктов и до 168 рефрижераторных контейнеров при сервисной скорости около 18 узлов. Вместимость варьируется от 18 000 до 19 000 м³ реф-груза.
Оставшиеся суда серии будут поставляться до 2028 года. Новострои оснащены энергоэффективными двигателями и современными корпусными решениями, соответствующими экологическим требованиям IMO и ЕС на период после 2030 г.
Поставка “Snow Flower” - часть программы обновления флота Cool Carriers.
После размещения новых заказов портфель новостроя компании включает семь судов, два из которых планируется принять уже в 2026 году.
📌Cool Carriers AB — международная судоходная компания, основанная в 1967 году и специализирующаяся на перевозке скоропортящихся грузов. Компания входит в группу Swire Shipping, принадлежащую британскому конгломерату John Swire & Sons Ltd.
#ReeferShipping#CoolCarriers#Shipbuilding#PerishableCargo#MaritimeLogistics