Articles of Gevent

gevent y posgres: falla la conexión asíncrona

Estoy usando gevent para manejar API I / O en un sistema web basado en Django. He parchado de monos usando: import gevent.monkey; gevent.monkey.patch_socket() He parcheado psychopg utilizando: import psycogreen; psycogreen.gevent.patch_psycopg() No obstante, ciertas llamadas a Django por lo que Model.save () está fallando con el error: “Falló la conexión asíncrona”. ¿Necesito hacer algo más […]

¿Cómo detecto una desconexión de socket? / ¿Cómo llamo a socket.recv con un timeout?

Estoy utilizando gevent parcheado socket para conectarme a un servidor de transmisión y estoy usando una conexión ADSL. No controlo el servidor, pero en mis pruebas, si detengo el servidor, puedo detectar la desconexión simplemente verificando si el resultado de recv es una cadena vacía, pero si desactivo mi versión de módem adsl nunca sale. […]

La solicitud del matraz / gevent simple no se está ejecutando simultáneamente

Tengo este simple matraz / gevent demo código. #!/usr/bin/env python import gevent from gevent.pywsgi import WSGIServer from gevent import monkey monkey.patch_socket() from flask import Flask, Response app = Flask(__name__) @app.route(‘/’) def stream(): def gen(): for i in range(10): yield “data: %d\r\n” % i gevent.sleep(1) return Response(gen()) if __name__ == ‘__main__’: http = WSGIServer((”, 5000), app) […]

gevent no se instala en un entorno virtual de Python en OS X Capitan

Acabo de instalar OS X Capitan y traté de instalar gevent en un entorno virtual python2.7.x. Y esto es lo que obtengo. Parece algo relacionado con gcc. Aquí está el rastreo: Building wheels for collected packages: gevent Running setup.py bdist_wheel for gevent Complete output from command /Users/admin/pyenvs/plgrnd/bin/python -c “import setuptools;__file__=’/private/var/folders/m8/xt5420594cn8zbgnry594ljw0000gn/T/pip-build-KkzbuJ/gevent/setup.py’;exec(compile(open(__file__).read().replace(‘\r\n’, ‘\n’), __file__, ‘exec’))” bdist_wheel -d […]

Ejecución de solicitudes de flask + gevent + que no se sirven ‘simultáneamente’

Arranco mi aplicación de matraz de esta manera: #!flask/bin/python from app import app_instance from gevent.pywsgi import WSGIServer #returns and instance of the application – using function to wrap configuration app = app_instance() http_server = WSGIServer((”,5000), app) http_server.serve_forever() Y luego, cuando bash ejecutar este código, las solicitudes se bloquean hasta que se agote la solicitud original. […]

gevent / peticiones se cuelga al hacer muchas peticiones de cabeza

Necesito hacer solicitudes de 100k de cabezas, y estoy usando gevent sobre las solicitudes. Mi código se ejecuta por un tiempo, pero luego se cuelga. No estoy seguro de por qué está colgando, o si está colgando dentro de solicitudes o gevent. Estoy usando el argumento del tiempo de espera tanto en las solicitudes como […]

Python async y tareas vinculadas a la CPU?

Recientemente he estado trabajando en un proyecto para mascotas en python usando un matraz. Es un simple pastebin con soporte de resaltado de syntax del lado del servidor con pygments Debido a que esta es una tarea costosa, delegué el resaltado de syntax a una cola de tareas de apio y en el controlador de […]

Uso de Celery para consultas en tiempo real y sincrónicas de la API con Gevent

Estoy trabajando en una aplicación web que recibirá una solicitud de un usuario y tendrá que acceder a una serie de API externas para componer la respuesta a esa solicitud. Esto se puede hacer directamente desde el hilo principal de la web usando algo como gevent para expandir la solicitud. Alternativamente, estaba pensando, podría poner […]

python ssl eof ocurrió en violación del protocolo, wantwriteerror, zeroreturnerror

Estoy ejecutando muchas tareas de apio (20,000) usando gevent para la piscina (también para parches de mono). Cada una de estas tareas afecta a servicios de terceros como adwords para extraer datos. Sigo teniendo tareas fallidas debido a errores SSL subyacentes. A continuación se muestran los seguimientos de stack de algunas de las excepciones (en […]

¿Cómo instalar gevent en Windows?

Estoy tratando de instalar gevent en Windows. Para hacer eso, descargué y compilé libevent, luego ejecuté pip install gevent y obtengo un error: Please provide path to libevent source with –libevent DIR . ¿Cómo puedo pasar la opción setup.py a setup.py usando pip ? Gracias de antemano, Iván. UPD: ejecutando pip install gevent –install-option=”–libevent path_to_libevent” […]