Три способа выполнить множество задач с 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
Perdeberg
The Vineyard Collection
Pinotage
ЮАР 🇿🇦, Паарл, красное, сухое, крепость 14%, Пинотаж.
Ягоды рождены на 25-летних лозах, выдержка в стали и частично в дубе.
Насыщено ароматом, но мне не хватило плотности.
А так, всё отлично, ровно, вкусные тёмные вишни, чернослив, ваниль, дымность, специи. Танины не кусаются, кислотность в норме и хорошо поможет с блюдами из утки).
Ценник +/- 1600р.
Чин!🍷
#пинотаж
#pinotage
#perdeberg
#vineyard
@pro_Wines
Solar panels help winemaker fight climate change
A roof of solar panel shades helps this French winemaker to protect his vineyard from hard frosts and blistering heat.
#France#Vineyard#FrenchWinemaker#SolarPanel#ClimateChange#News#Reuters
Subscribe: http://smarturl.it/reuterssubscribe
Reuters brings you the latest business, finance and breaking news video from around the globe. Our reputation for accuracy and impartiality is unparalleled.
Get the latest news on: http://reuters.com/
Follow Reuters on Facebook: https://www.facebook.com/Reuters
Follow Reuters on Twitter: https://twitter.com/Reuters
Follow Reuters on Instagram: https://www.instagram.com/reuters/?hl=en
➖@reutersworldchannel➖
В ЮАР в феврале собирают виноград.
В выходные на винные фермы приезжают семьями, чтобы погулять, собрать виноград своими руками и увезти домой за 27-28 рэндов ($1,5 или 130-133 руб.) за килограмм.
Фото с винной фермы Луренсфорд недалеко от Кейптауна.
Сайт: https://lourensford.co.za/.
#вино#виноградник#отдых
____________
February is grape harvest time in South Africa.
Families visit wine farms on weekends to enjoy the atmosphere, pick grapes with their own hands, and take them home for 27 or 28 rands ($1,5 or 130-133 rubles) per kilo.
Photos from the Lourensford Wine Farm near Cape Town.
Website: https://lourensford.co.za/.
#wine#vineyard#leisure