Три способа выполнить множество задач с asyncio
Функция для примера:
async def do_it(n):
await asyncio.sleep(random.uniform(0.5, 1))
return n
1. Последовательный вызов
async def main():
for i in range(100):
result = await do_it(i)
Такой вызов имеет смысл только тогда, когда результат одной задачи требуется для вызова следующей.
Если они независимы, то это антипаттерн, так как аналогичен простому синхронному вызову по очереди.
2. Упорядоченный результат
async def main():
tasks = [do_it(i) for i in range(100)]
results = await asyncio.gather(*tasks)
Выполняет корутины конкурентно и возвращает результат в виде списка.
Полезен когда требуется получить результаты в том же порядке в котором задачи отправлены.
3. Результат по мере готовности
tasks = [asyncio.create_task(do_it(i)) for i in range(100)]
for cor in asyncio.as_completed(tasks):
result = await cor
Так же выполняет корутины конкурентно, но не гарантирует порядок. Результат возвращается по мере готовности, каждый отдельно.
Полезен когда нужно обработать любой ответ как можно скорее.
#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