Articles of python asyncio

Leer archivo línea por línea con asyncio

Deseo leer varios archivos de registro a medida que se escriben y procesar su entrada con asyncio. El código deberá ejecutarse en windows. Por lo que entiendo de la búsqueda tanto en stackoverflow como en la web, la E / S asíncrona de archivos es complicada en la mayoría de los sistemas operativos (la select […]

Coroutine en Python entre 3.4 y 3.5, ¿Cómo puedo mantener la compatibilidad de las contraseñas?

Estoy desarrollando el framework de chat de Python con asyncio . Pero veo el PEP-492 y hay una nueva syntax, async / await y finalmente se acepta. Me gusta la syntax async / await y quiero usarla. Pero me preocupa la compatibilidad con las contraseñas 3.4. Si uso nueva syntax en mi código, alguien puede […]

Combina objetos como Promise.all

En JavaScript asíncrono, es fácil ejecutar tareas en paralelo y esperar a que todas se completen utilizando Promise.all : async function bar(i) { console.log(‘started’, i); await delay(1000); console.log(‘finished’, i); } async function foo() { await Promise.all([bar(1), bar(2)]); } // This works too: async function my_all(promises) { for (let p of promises) await p; } async […]

¿Cuál es la diferencia entre loop.create_task, asyncio.async / asegurar_future y Task?

Estoy un poco confundido por algunas funciones asyncio . Veo que hay una función BaseEventLoop.create_task(coro) para progtwigr una co-rutina. La documentación para create_task dice que es una nueva función y, por compatibilidad, deberíamos usar asyncio.async(coro) que al referirme a los documentos nuevamente que veo es un alias para asyncio.ensure_future(coro) que nuevamente progtwig la ejecución de […]

Python aiohttp / asyncio – cómo procesar los datos devueltos

Estoy en el proceso de mover algún código síncrono a asyncio usando aiohttp. El código síncrono tardó 15 minutos en ejecutarse, así que espero mejorar esto. Tengo un código de trabajo que obtiene datos de algunas direcciones URL y devuelve el cuerpo de cada uno. Pero esto es solo contra 1 sitio de laboratorio, tengo […]

¿Cómo pasar parámetros adicionales a handle_client coroutine?

La forma recomendada de usar asyncio para un servidor de socket es: import asyncio async def handle_client(reader, writer): request = (await reader.read(100)).decode() response = “Data received.” writer.write(response.encode()) async def main(): loop.create_task(asyncio.start_server(handle_client, ‘localhost’, 15555)) loop = asyncio.get_event_loop() loop.create_task(main()) loop.run_forever() Esto funciona bien, pero ahora necesito recibir una solicitud de cliente adecuada y luego usar la biblioteca […]

Intentando implementar 2 “hilos” usando el módulo `asyncio`

He jugado un poco con subprocesos antes en Python, pero decidí asyncio módulo asyncio , especialmente porque puedes cancelar una tarea en ejecución, lo que me pareció un buen detalle. Sin embargo, por alguna razón, no puedo rodearlo con la cabeza. Esto es lo que quería implementar (perdón si estoy usando una terminología incorrecta): un […]

¿Por qué la biblioteca asyncio es más lenta que los subprocesos para esta operación vinculada a E / S?

Estoy escribiendo un progtwig de python que se usa para enumerar el nombre de dominio de un sitio. Por ejemplo, ‘a.google.com’. Primero, usé el módulo de threading para hacer esto: import string import time import socket import threading from threading import Thread from queue import Queue ”’ enumerate a site’s domain name like this: 1-9 […]

E / S sin locking con asyncio

Estoy tratando de escribir un juego en red con Pygame y asyncio, pero no puedo averiguar cómo evitar colgar en las lecturas. Aquí está mi código para el cliente: @asyncio.coroutine def handle_client(): print(“Connected!”) reader, writer = yield from asyncio.open_connection(‘localhost’, 8000) while True: mouse_up = False for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() sys.exit() […]

¿Cómo ejecutar un servidor aiohttp en un hilo?

Este ejemplo de servidor aiohttp en un subproceso falla con un RuntimeError: There is no current event loop in thread ‘Thread-1′. error: import threading from aiohttp import web def aiohttp_server(): def say_hello(request): return web.Response(text=’Hello, world’) app = web.Application(debug=True) app.add_routes([web.get(‘/’, say_hello)]) web.run_app(app) t = threading.Thread(target=aiohttp_server) t.start() ¿Cómo ejecutar un servidor aiohttp en hilo?