Три способа выполнить множество задач с 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
Marco #Grimaldi: "Ci disgusta, non doveva succedere" commenta il vicecapogruppo di Alleanza Verdi e Sinistra alla Camera sull'agente picchiato a Torino al corteo per Askatasuna; "così si fa il gioco di chi vuole i decreti sicurezza". Grimaldi avverte che si vuole "prendersi lo scalpo di Torino per via militare" e difende la presenza del suo gruppo, sostenendo che il corteo è stato "pacifico" e che "quelle immagini non ci sarebbero mai state senza lo sgombero di Askatasuna".
@UltimoraPolitics24
Forza Italia scompare dal Consiglio Regionale della Campania: l'ex governatore #Caldoro e #Grimaldi lasciano gli azzurri. L'unico esponente rimasto andrà nel gruppo misto.
@UltimoraPolitics
🚢Grimaldi принимает автомобилевоз: “Grande Seoul”.
Итальянская группа Grimaldi Group приняла в эксплуатацию новый автомобилевоз типа PCTC - “Grande Seoul”, ставший девятым судном серии, подготовленной для будущего использования аммиака в качестве топлива.
Судно построено на китайской верфи Shanghai Waigaoqiao Shipbuilding при участии China Shipbuilding Trading Company.
Вместимость автовоза превышает 9 240 CEU (стандартных легковых машин), при этом четыре палубы усилены для перевозки тяжёлой техники и проектных грузов.
Длина судна составляет около 200 метров, валовая вместимость — около 77 500 GT. Конструкция позволяет перевозить грузы массой до 250 тонн и высотой до 6,5 метров, что расширяет возможности судна для перевозки тяжёлой техники и специализированных RoRo-грузов.
Судно оснащено двигателем нового поколения с электронным управлением и соответствует современным экологическим стандартам по выбросам CO₂, NOx и SOx. Статус “аmmonia ready” означает, что в будущем судно может быть переоборудовано для работы на аммиаке.
“Grande Seoul” вскоре выйдет в первый рейс на линии Азия – Европа, перевозя более 6 200 автомобилей и около 1 600 линейных метров другого колесного груза с заходами в порты Антверпен, Портбери (Великобритания) и Виго (Испания).
📌Grimaldi Group — итальянская судоходная компания, основанная в 1947 году и специализирующаяся на RoRo-перевозках автомобилей, техники и контейнеров. Компания является частной и принадлежит семье Гримальди (Grimaldi), корни которой уходят в 14-15 века.
#RoRo#CarCarriers#Grimaldi#GreenShipping#PCTC