Articles of python asyncio

Asyncio y rabbitmq (asynqp): cómo consumir de varias colas simultáneamente

Estoy tratando de consumir varias colas al mismo tiempo usando python, asyncio y asynqp . No entiendo por qué mi llamada a la función asyncio.sleep() no tiene ningún efecto. El código no se detiene allí. Para ser justos, en realidad no entiendo en qué contexto se ejecuta la callback, y si puedo ceder el control […]

¿Cómo enlazar el método asíncrono a una pulsación de tecla en Tkinter?

Considere el siguiente ejemplo: import asyncio import tkinter as tk class App(tk.Tk): def __init__(self): super().__init__() self.create_widgets() self._configure_bindings() # I believe it is not possible # to do this if the method needs # to be async as well def create_widgets(self): pass def _configure_bindings(self): self.bind(”, self.spam) # what’s the proper way? # does this method need […]

¿Se recibe de forma asíncrona la salida de comandos de shell de larga ejecución con asyncio (Python 3.4+)?

Estoy tratando de descubrir cómo simplemente iniciar una serie de comandos de shell de larga duración de forma no bloqueante, y manejar de forma asíncrona su salida cuando terminan, en el orden en que terminan , incluso si ese es otro orden al que empezaron, usando la biblioteca de Python de asyncio disponible en Python […]

Python 3 asyncio – rendimiento de uso de stack vs asyncio.async

Estoy evaluando diferentes patrones para la ejecución periódica (sueño real / demoras por brevedad) utilizando el marco asyncio de Python 3, y tengo dos piezas de código que se comportan de manera diferente y no puedo explicar por qué. La primera versión, que usa el yield from para llamarse a sí misma de forma recursiva, […]

El subproceso Python Asyncio nunca termina

Tengo un progtwig Python simple que estoy usando para probar asyncio con subprocesos: import sys, time for x in range(100): print(“processing (%s/100) ” % x) sys.stdout.flush() print(“enjoy”) sys.stdout.flush() Ejecutar esto en la línea de comandos produce los resultados deseados. Sin embargo, cuando se llama desde asyncio, nunca termina process = yield from asyncio.create_subprocess_exec( *[“python”, “program.py”], […]

Python asyncio run event loop una vez?

Estoy tratando de entender la biblioteca de asyncio, específicamente con el uso de sockets. He escrito algún código en un bash de obtener comprensión, Quería ejecutar un emisor y un receptor de forma asíncrona. Llegué al punto en el que recibí todos los datos enviados hasta el último, pero luego tengo que ejecutar un ciclo […]

¿Por qué es asyncio.Future incompatible con concurrent.futures.Future?

Las dos clases representan excelentes abstracciones para la progtwigción concurrente, por lo que es un poco desconcertante que no admitan la misma API. En concreto, según la documentación : asyncio.Future es casi compatible con concurrent.futures.Future . Diferencias result() y exception() no toman un argumento de tiempo de espera y generan una excepción cuando el futuro […]

Hacer múltiples llamadas con asyncio y agregar resultados a un diccionario

Estoy teniendo problemas para envolver mi adelante en la biblioteca Asyncio de Python 3. Tengo una lista de códigos postales y estoy intentando hacer llamadas asíncronas a una API para obtener cada código postal correspondiente a la ciudad y el estado. Puedo hacerlo con éxito en secuencia con un bucle for, pero quiero hacerlo más […]

Python asyncio: callback al lector y comunicación coroutina.

Estoy tratando de implementar una idea simple de pasar datos de stdin a una coroutine: import asyncio import sys event = asyncio.Event() def handle_stdin(): data = sys.stdin.readline() event.data = data # NOTE: data assigned to the event object event.set() @asyncio.coroutine def tick(): while 1: print(‘Tick’) yield from asyncio.sleep(1) if event.is_set(): data = event.data # NOTE: […]

Esperando que una tarea se complete después de KeyboardInterrupt en asyncio

Estoy tratando de entender cómo funciona el asyncio . En mi caso, el cliente realiza una conexión tcp al servidor, envía una cadena de inicio de sesión, si está autenticada, recibe una secuencia de caracteres. Finalmente, en KeyboardInterrupt envía la cadena de logoff al servidor y hapilly se desconecta. Actualmente estoy atascado en la parte […]