Три способа выполнить множество задач с 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
🏔️Impresionante vista desde la ventana directamente al Matterhorn
📏
📏
📏
📏
📏
📏
📏
📏
🟠El Matterhorn en los Alpes atrae a turistas de todo el mundo. Una de las montañas más altas de Europa parece inaccesible, pero cada año miles de escaladores eligen unas vacaciones activas para poner a prueba su resistencia.
📏
📏
📏
📏
📏
📏
📏
📏
#Suiza🇨🇭@turismo
#Suiza#transportes Huelga de trabajadores de tierra en el aeropuerto de Ginebra. https://es.euronews.com/2023/12/24/los-empleados-de-tierra-del-aeropuerto-de-ginebra-inician-una-huelga
#Suiza. Triunfo ultra nacionalista y anti #migraciones en las #elecciones
https://elpais.com/internacional/2023-10-22/la-derecha-populista-gana-las-elecciones-parlamentarias-de-suiza-con-una-campana-antinmigracion.html
⚽️🇪🇺Nations League
España 3-2 Suiza#NationsLeague#España#Suiza
En el ropero de De la Fuente hay todo tipo de prendas. Un día hay brillo para los centrocampistas; otro, para los cohetes en las bandas; y también hay fechas para los revolucionarios, los Bryan. Bryan Gil y Bryan Zaragoza desatascaron un partido que iba hacia el fichero de los empates sin sal.
https://www.marca.com/futbol/nations-league/cronica/2024/11/18/673b819722601d5b768b4597.html
🏆@Info288_deportes
⚽️🇪🇺Nations League
Suiza 1-4 España#NationsLeague#Suiza#España
España funciona en todos los circuitos. Primero se exhibió cuando el partido exigía etiqueta. Luego, resistió cuando había que tragar agua y comer barro con diez jugadores por expulsión de Le Normand. El campeón de Europa clavó una victoria de prestigio. Dos goles contra once y dos contra diez. Con los de De la Fuente no hay tripa llena.
https://www.marca.com/futbol/nations-league/cronica/2024/09/08/66ddd8f346163f65608b4599.html
🏆@Info288_deportes