Articles of python asyncio

Asyncio detectando desconexiones se bloquea.

Estoy usando Asyncio en Python 3.4, intentaré explicar lo que estoy haciendo hasta este punto y lo que (creo) está causando el problema. Por un lado, tengo un marco de conexión UDP con operaciones de locking, tomo los datos que obtengo de este flujo y estoy creando el json que entrego al cliente en formato […]

Cómo progtwigr y cancelar tareas con asyncio.

Estoy escribiendo una aplicación cliente-servidor. Mientras está conectado, el cliente envía al servidor una señal de “latido”, por ejemplo, cada segundo. En el lado del servidor, necesito un mecanismo donde pueda agregar tareas (o corrutinas u otra cosa) para que se ejecuten de forma asíncrona. Además, quiero cancelar las tareas de un cliente cuando deja […]

Python – Intenta decodificar JSON con un mimetype inesperado:

Recientemente cambié las solicitudes a aiohttp porque no podía usarlo en asyncio loops. El canje fue perfecto y todo va bien, excepto por una cosa. Mi consola esta llena de Attempt to decode JSON with unexpected mimetype: y Attempt to decode JSON with unexpected mimetype: txt/html; charset=utf-8 Mi código tiene una lista de sitios a […]

Python asyncio con Slack bot

Estoy tratando de hacer un simple Slack bot usando asyncio, en gran parte usando el ejemplo aquí para la parte de asyncio y aquí para la parte de Slack bot. Los dos ejemplos funcionan por sí solos, pero cuando los pongo juntos parece que mi bucle no se repite: pasa una vez y luego muere. […]

Mala optimización de locking en asyncio

Actualización: Título editado para centrarse en el problema principal. Ver mi respuesta para la actualización completa. En el siguiente código, a() y b() son idénticos. Cada uno de ellos cuenta de 0 a 9 simultáneamente, mientras que adquiere y produce un locking cada 2 puntos. import asyncio lock = asyncio.Lock() def a (): yield from […]

¿Asyncio admite la ejecución de un subproceso desde un subproceso no principal?

Estoy desarrollando una aplicación que consiste principalmente en servicios que son subprocesos con bucles de ejecución personalizados. Uno de los servicios debe generar subprocesos y realmente no entiendo si es válido o no. La documentación oficial es ambigua. Es decir, dice que ambos asyncio supports running subprocesses from different threads y que An event loop […]

Cola de Python que vincula el objeto ejecutando asyncio coroutines con la entrada del hilo principal

Tengo una secuencia de comandos ejecutándose donde el hilo principal toma entrada de stdin y luego lo pasa a un hilo secundario usando una cola. En el subproceso secundario, estoy usando asyncio coroutines para activar un oyente en un socket y esperar las conexiones. Una vez que se establece la conexión, ahora puedo enviar datos […]

Inicia la función asíncrona sin importar el paquete asyncio.

Es posible iniciar una función como esta. async def foo(): while True: print(“Hello!”) ¿Sin importar el paquete asyncio (y obtener el bucle de eventos)? Estoy buscando un principio similar a los goroutines de Go, donde se puede lanzar una coroutine con solo go . Edición: la razón por la que no estoy importando el paquete […]

Python asyncio buffer y datos de proceso

Estoy teniendo problemas con algunas tareas intensivas de CPU dentro de un bucle de eventos asyncio. Los problemas que surgen al tratar de mantener un búfer de datos entrantes y comstackr paquetes a partir de ellos. He intentado usar ejecutores para hacer las cosas relacionadas con la CPU, pero luego tuve problemas para mantener el […]

Python asyncio force timeout

El uso de asyncio a coroutine puede ejecutarse con un tiempo de espera, por lo que se cancela después del tiempo de espera: @asyncio.coroutine def coro(): yield from asyncio.sleep(10) loop = asyncio.get_event_loop() loop.run_until_complete(asyncio.wait_for(coro(), 5)) El ejemplo anterior funciona como se esperaba (se agota después de 5 segundos). Sin embargo, cuando el coroutine no usa asyncio.sleep() […]