Articles of tornado

Manejo de excepciones en Python Tornado

Estoy tratando de manejar la excepción ocurrida en AsyncClient.fetch de esta manera: from tornado.httpclient import AsyncHTTPClient from tornado.httpclient import HTTPRequest from tornado.stack_context import ExceptionStackContext from tornado import ioloop def handle_exc(*args): print(‘Exception occured’) return True def handle_request(response): print(‘Handle request’) http_client = AsyncHTTPClient() with ExceptionStackContext(handle_exc): http_client.fetch(‘http://some123site.com’, handle_request) ioloop.IOLoop.instance().start() y ver la siguiente salida: WARNING:root:uncaught exception Traceback (most […]

Python Tornado – La solicitud asíncrona está bloqueando

Los manejadores de solicitudes son los siguientes: class TestHandler(tornado.web.RequestHandler): # localhost:8888/test @tornado.web.asynchronous def get(self): t = threading.Thread(target = self.newThread) t.start() def newThread(self): print “new thread called, sleeping” time.sleep(10) self.write(“Awake after 10 seconds!”) self.finish() class IndexHandler(tornado.web.RequestHandler): # localhost:8888/ def get(self): self.write(“It is not blocked!”) self.finish() Cuando OBTENGO localhost:8888/test , la página carga 10 segundos y muestra […]

Tornado AsyncHTTPClient fetch callback: Parámetros extra?

Soy un poco nuevo en todo este juego asíncrono (en su mayoría ha sido un tipo de Django), pero me preguntaba: ¿cómo puedo pasar parámetros extra a la callbacks de AsyncHTTPClient.fetch de Tornado? Por ejemplo, estoy rastreando el número de veces que se ha llamado una callback (para esperar hasta que un número determinado se […]

usando gen.task con Tornado para una función simple

Solo bash usar las funciones asíncronas de Tornado: quiero invocar un método desde mi controlador, pero me sigue diciendo que “obtuvo un argumento de palabra clave inesperado ‘callback’”. class MyHandler(tornado.web.RequestHandler): @asynchronous @gen.engine def get(self): response = yield gen.Task(self.dosomething, ‘argument’) self.write(response) self.finish() def dosomething(self, myargument): pass

¿Cómo funciona el sondeo largo en Tornado?

En la demostración de chat de Tornado, tiene un método como este: @tornado.web.asynchronous def post(self): cursor = self.get_argument(“cursor”, None) global_message_buffer.wait_for_messages(self.on_new_messages, cursor=cursor) Soy bastante nuevo en este tema de sondeo largo, y realmente no entiendo exactamente cómo funcionan los hilos, aunque dice: Al utilizar E / S de red sin locking, Tornado puede escalar a decenas […]

Tornado apio integración de hacks

Como nadie proporcionó una solución para este post más el hecho de que necesito desesperadamente una solución, aquí está mi situación y algunas soluciones / ideas abstractas para el debate. Mi stack Tornado Apio MongoDB Redis RabbitMQ Mi problema: encuentre una manera para que Tornado envíe una tarea de apio (resuelta) y luego recopile de […]

¿Cómo envío un mensaje websocket en Tornado a voluntad?

Soy muy nuevo en Tornado y quería saber si es posible enviar un mensaje (write_message) a voluntad desde el progtwig Python a todos los clientes. Por ejemplo, digamos que mi progtwig está monitoreando un directorio para ver si un archivo aparece / existe. Cuando aparezca, deseo enviar un mensaje de socket web a un cliente […]

¿Usar un generador de python simple como una co-rutina en un controlador asíncrono Tornado?

Tengo una función de generador de python que produce trozos de texto. Me gustaría escribir un método de get para una subclase tornado.web.RequestHandler que tornado.web.RequestHandler el generador, escribiendo los fragmentos en la respuesta a medida que avanza. Dado que esto es Tornado, y dado que el generador puede tardar más de un segundo en procesarse, […]

¿Cómo hacer que SQLAlchemy in Tornado sea asíncrono?

¿Cómo hacer que SQLAlchemy in Tornado sea async ? Encontré un ejemplo para MongoDB en async mongo, pero no pude encontrar nada como el motor para SQLAlchemy . ¿Alguien sabe cómo hacer que las consultas de SQLAlchemy ejecuten con tornado.gen (estoy usando MySQL continuación de SQLAlchemy , en el momento en que mis manejadores leen […]

¿Cómo realizar mejor el multiprocesamiento dentro de las solicitudes con el servidor Tornado de Python?

Estoy usando el servidor de Python sin locking de E / S Tornado. Tengo una clase de solicitudes GET que pueden tardar una cantidad de tiempo significativa en completarse (piense en el rango de 5 a 10 segundos). El problema es que el Tornado bloquea estas solicitudes para que las solicitudes rápidas posteriores se retengan […]