Articles of Gevent

Python – Flask-SocketIO envía un mensaje desde el hilo: no siempre funciona

Estoy en la situación en la que recibo un mensaje del cliente. Dentro de la función que maneja esa solicitud (@ socketio.on) quiero llamar a una función donde se realiza un trabajo pesado. Esto no debería resultar en el locking del hilo principal y se piensa que el cliente está informado una vez que el […]

Greenlet vs. Trapos

Soy nuevo en gevents y greenlets. Encontré una buena documentación sobre cómo trabajar con ellos, ¡pero ninguna me justificó cómo y cuándo debería usar Greenlets! ¿En qué son realmente buenos? ¿Es una buena idea usarlos en un servidor proxy o no? ¿Por qué no hilos? De lo que no estoy seguro es de cómo pueden […]

¿Cómo puedo escribir un servidor de socket en un hilo diferente de mi progtwig principal (usando gevent)?

Estoy desarrollando un servidor web WSGIserver Flask / gevent que necesita comunicarse (en segundo plano) con un dispositivo de hardware a través de dos sockets utilizando XML. El cliente (mi aplicación) inicia un socket y puedo enviar comandos XML al dispositivo. El dispositivo responde en un puerto diferente y envía información que mi aplicación debe […]

Servidor wsgi concurrente sin locking

Estoy tratando de poder responder las solicitudes web entrantes simultáneamente, mientras que el procesamiento de una solicitud incluye una llamada IO bastante larga. Voy a usar gevent, ya que se supone que es “sin locking” El problema que encontré es que las solicitudes se procesan secuencialmente, aunque tengo muchos subprocesos de gevent. Por alguna razón, […]

Gevent monkeypatching rompiendo multiprocesamiento

Estoy intentando usar el grupo de multiprocesamiento para ejecutar un grupo de procesos, cada uno de los cuales ejecutará un grupo de Greenlets gevent. La razón de esto es que hay mucha actividad en la red, pero también mucha actividad de la CPU, así que para maximizar mi ancho de banda y todos mis núcleos […]

¿Cómo habilitar las solicitudes en modo asíncrono?

para este código: import sys import gevent from gevent import monkey monkey.patch_all() import requests import urllib2 def worker(url, use_urllib2=False): if use_urllib2: content = urllib2.urlopen(url).read().lower() else: content = requests.get(url, prefetch=True).content.lower() title = content.split(”)[1].split(”)[0].strip() urls = [‘http://www.mail.ru’]*5 def by_requests(): jobs = [gevent.spawn(worker, url) for url in urls] gevent.joinall(jobs) def by_urllib2(): jobs = [gevent.spawn(worker, url, True) for url […]

Necesita ayuda para entender el cometa en Python (con Django)

Después de pasar dos días enteros en esto, todavía me resulta imposible entender todas las opciones y configuraciones para Comet en Python. He leído todas las respuestas aquí, así como todas las publicaciones del blog que pude encontrar. Se siente como si estuviera a punto de sufrir una hemorragia en este punto, así que mis […]

KeyError en el módulo ‘threading’ después de una ejecución exitosa de py.test

Estoy ejecutando un conjunto de pruebas con py.test. Pasan. Yippie! Pero estoy recibiendo este mensaje: Exception KeyError: KeyError(4427427920,) in ignored ¿Cómo debo hacer para localizar la fuente de eso? (No estoy usando hilos directamente, pero estoy usando gevent.)

Byte Array en Python

¿Cómo puedo representar una matriz de bytes (como en Java con byte []) en Python? Tendré que enviarlo por cable con gevent. byte key[] = {0x13, 0x00, 0x00, 0x00, 0x08, 0x00};

Ejecutar aplicación web con gevent

Quiero intentar jugar con gevent como servidor web y marco de aplicaciones. No veo ninguna forma de “reiniciar” el servidor o actualizar el código de la aplicación sin matar e iniciar de nuevo toda la aplicación de Python. ¿Es así como se hace? Tal vez solo sea cuestión de que yo comprenda un paradigma diferente […]