Отдельно разберём TaskGroup, который пришел на замену gather в Python 3.11.
Ключевые отличия
▫️create_task() возвращает объект asyncio.Task, у которого есть соответствюущие методы управления. То есть у нас больше контроля
▫️это контекстный менеджер, который гарантирует что все таски будут остановлены по выходу из контекста
▫️ошибка автоматически отменяет незавершенные задачи,
▫️except* передает нам ExceptionGroup, в котором каждую ошибку можно обработать отдельно
import asyncio
import random
async def do_it() -> str:
if random.random() < 0.1:
raise ValueError('Oops')
delay = random.uniform(0.5, 1.5)
await asyncio.sleep(delay)
return delay
async def main():
try:
async with asyncio.TaskGroup() as tg:
for _ in range(10):
tasks.append(tg.create_task(do_it()))
for t in tasks:
print(t.result())
except *ValueError as e:
for err in e.exceptions:
print(err)
asyncio.run(main())
Рекомендую изучить страницу Coroutines and Tasks из документации, где представлено больше интересных примеров и механизмов
- таймауты
- отмена задач
- создание задач из другого потока
#async
🚢Maersk временно перенаправляет часть сервисов в обход Суэца.
Датская группа A.P. Moller – Maersk на ближайшие три недели перенаправит часть рейсов контейнерных сервисов ME11 и MECL с маршрута через Суэцкий канал на обход вокруг мыса Доброй Надежды.
Решение принято из-за «непредвиденных ограничений» в регионе Красного моря.
Компания подчёркивает, что изменения носят временный характер, и по возможности продолжит использовать Суэц для других сервисов. Клиенты получат обновлённые графики перевозок.
Ранее в рамках альянса Gemini Cooperation с Hapag-Lloyd сообщалось, что один совместный сервис планируется выполнять через Красное море и Суэцкий канал при сопровождении военно-морских сил, без масштабного изменения всей сети.
Перенаправление рейсов увеличивает транзитное время и потребление топлива, снижая эффективное предложение тоннажа. В условиях сохраняющейся геополитической напряжённости в регионе Красного моря подобные решения усиливают давление на расписания и ставки в сегменте дальних линейных контейнерных перевозок.
📌A.P. Moller – Maersk A/S — датская интегрированная логистическая и судоходная группа, основанная в 1904 году.
Акции обращаются на бирже Nasdaq Copenhagen; контроль осуществляется через фонд A.P. Moller Foundation (семья Мёллер).
#Maersk#SuezCanal#ContainerShipping#RedSea#GlobalLogistics
🚢Консорциум во главе с Macquarie Asset Management приобретает Qube Holdings.
Консорциум под руководством Macquarie Asset Management (MAM) заключил соглашение о покупке австралийского портово-логистического оператора Qube Holdings.
В состав консорциума входят фонды под управлением MAM, а также соинвесторы UniSuper и Pontegadea. Сделка оформлена через Scheme Implementation Deed (SID).
Акционеры Qube (кроме UniSuper) получат AUD 5,20 за акцию наличными. UniSuper (15,07%) обменяет свою долю на участие в холдинговой структуре консорциума.
Стратегические аспекты:
✔️ Усиление позиций частного капитала в стратегической портовой инфраструктуре Австралии.
✔️ Фокус на масштабировании бизнеса Qube в 200 локациях в Австралии, Новой Зеландии и ЮВА.
✔️ Концентрация на устойчивости цепочек поставок и региональной экспансии в АТР.
✔️ Долгосрочный инфраструктурный актив с высокой капиталоёмкостью и барьерами входа.
📌Qube Ports — крупный поставщик логистических и портовых управленческих услуг в регионе Австралии и Новой Зеландии, а также в Юго-Восточной Азии. Qube Ports работает более чем в 40 портах Австралии, Новой Зеландии и Юго-Восточной Азии, обеспечивая перевалку контейнеров, навалочных грузов и интегрированную логистику.
📌Macquarie Asset Management — подразделение австралийской группы Macquarie Group, основанной в 1969 г.
Macquarie Group является публичной компанией (ASX: MQG) со штаб-квартирой в Сиднее и контролируется институциональными и частными инвесторами.
MAM управляет активами в сфере инфраструктуры, энергетики и логистики по всему миру.
#Ports#InfrastructureInvestment#Qube#Macquarie#GlobalLogistics