[pyar] geventreactor + monkey.patch_all en produccion?

Gonzalo Larralde gonzalolarralde en gmail.com
Jue Sep 19 22:21:34 ART 2013


Hola mundo,

Comento una situación: Estamos desarrollando un server para una app de iOS.
Esta app tiene, entre otras cosas, comunicación con un par de APIs cuyas
implementaciones usan urllib2. Puntualmente Facebook y OpenTok.

El tema es, el server está hecho sobre twisted, pero dada esta situación me
pareció una buena opción usar geventreactor (
https://github.com/jyio/geventreactor) y aplicar el monkey patch que hace
gevent sobre los sockets, ssl, y un par de modulos mas, para que sean
"greenlet cooperative".

Ya lo tengo funcionado, y al menos con pruebas chicas está respondiendo muy
bien. Bah, es lo que asumo con las métricas pobres que tengo: puse un
contador que muestra cuanto tiempo pasó desde la ultima llamada - el tiempo
de espera (resultado ideal = 0) y da valores que no pasan de los 10
milisegundos (en mi mauqina, con todo el bardo que tengo corriendo), por lo
cual el thread no se bloquea. El tiempo gral de respuesta es el esperado.

La pregunta es: es lo suficientemente fiable este monkey patching que hace
gevent? Alguien tuvo experiencia usando esto (sea con geventreactor o bien
con gevent) en alguna implementación que esté en producción? A que
conclusiones llegaron en tal caso?

Se agradece cualquier referencia (buena o mala) que me puedan dar sobre el
tema. En "los papeles" la implementación funciona, pero tengo miedo de
salir a producción y pegarme un palo.

PD: El server también usa mongoengine como ORM, y pika + rabbit para
comunicación entre instancias. No aporta a la pregunta, pero mejor poner en
contexto :)

--
Slds,

Gonzalo.
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20130919/b093709c/attachment-0001.html>


More information about the pyar mailing list