Articles of asíncrono

Usando Tornado y Twisted al mismo tiempo

Estoy en una situación extraña en la que tengo que usar Twisted en un sistema construido completamente a partir de Tornado. Pueden compartir el mismo IOLoop, así que sé que pueden trabajar juntos. Mi pregunta es: ¿puedo usar con seguridad sus decoradores de la misma rutina en la misma función? Por ejemplo: import tornado.platform.twisted tornado.platform.twisted.install() […]

Python Multiprocessing map_async

Me gustaría omitir los resultados que se devuelven desde map_async . Están creciendo en la memoria pero no los necesito. Aquí hay un código: def processLine(line): #process something print “result” pool = Pool(processes = 8) for line in sys.stdin: lines.append(line) if len(lines) >= 100000: pool.map_async(processLine, lines, 2000) pool.close() pool.join() Cuando tengo que procesar un archivo […]

¿Alguna sugerencia para usar la API de MySQL sin locking en Tornado en Python3?

Esperaba el soporte de tornado para la operación de base de datos asíncrona de SQL, después de leer el código fuente, http://www.tornadoweb.org/documentation/_modules/tornado/database.html#Connection Suspiro, están bloqueando la versión. Hay alguna opción. Plan A: encuentre un conjunto de api similar al módulo mysqldb, excepto que usan la callback para devolver el reuslt.sorry no encontré uno que muestre […]

Rendimiento de: controlador de solicitudes asíncronas con tareas de locking manejadas por la agrupación de trabajadores

Cómo es el rendimiento de este script: http://tornadogists.org/2185380/ copiado a continuación. from time import sleep from tornado.httpserver import HTTPServer from tornado.ioloop import IOLoop from tornado.web import Application, asynchronous, RequestHandler from multiprocessing.pool import ThreadPool _workers = ThreadPool(10) def run_background(func, callback, args=(), kwds={}): def _callback(result): IOLoop.instance().add_callback(lambda: callback(result)) _workers.apply_async(func, args, kwds, _callback) # blocking task like querying to […]

¿Por qué gevent.spawn no ejecuta la función parametrizada hasta que se realiza una llamada a Greenlet.join?

Me gustaría emitir una solicitud HTTP POST asíncrona utilizando gevent . No me importa la respuesta, simplemente quiero ejecutar la solicitud lo antes posible. Sin embargo, siempre que bash hacerlo utilizando gevent.spawn , la solicitud nunca se ejecuta. Lo sé porque llamar a los métodos .ready() o .successful() en el Greenlet que se devuelve desde […]

Peticiones de Python con multiproceso.

He estado tratando de construir un raspador con funcionalidad de multihilo en los últimos dos días. De alguna manera todavía no podía manejarlo. Al principio intenté un enfoque de subprocesos múltiples con el módulo de subprocesamiento, pero no fue más rápido que usar un solo subproceso. Más tarde, supe que las solicitudes están bloqueando y […]

Base de datos de consulta asíncrona para claves para usar en múltiples solicitudes

Quiero consultar de forma asíncrona las claves de una base de datos, luego realizar solicitudes a varias direcciones URL para cada clave. Tengo una función que devuelve un Deferred de la base de datos cuyo valor es la clave para varias solicitudes. Idealmente, llamaría a esta función y devolvería un generador de start_requests desde start_requests […]

Enviando y recibiendo async sobre multiprocesamiento.Pipe () en Python

Tengo algunos problemas para que el Pipe.send funcione en este código. Lo que me gustaría hacer en última instancia es enviar y recibir mensajes desde y hacia el proceso externo mientras se ejecuta en una bifurcación. Eventualmente, esto se integrará en un bucle pexpect para hablar con los procesos de los intérpretes. from multiprocessing import […]

Python Asynchronous Reverse DNS Lookups

Estoy buscando hacer una gran cantidad de búsquedas de DNS inversas en una pequeña cantidad de tiempo. Actualmente, he implementado una búsqueda asíncrona utilizando socket.gethostbyaddr y concurrent.futures, pero aún no veo el rendimiento deseado. Por ejemplo, el script tardó unos 22 minutos en completarse con 2500 direcciones IP. Me preguntaba si hay alguna forma más […]

¿Se puede implementar twisted en Java?

Recuerdo haber leído que las siguientes funciones llevan al desarrollo de marcos / bibliotecas interesantes en Python: – (Leí el artículo de http://www.python.org/workshops/2002-02/papers/09/index.htm ) Un modelo de clase simple, que facilita la herencia. Escritura dinámica, lo que significa que el código debe asumir menos. Gestión de memoria incorporada. Java está comstackdo estáticamente, y también tiene […]