He usado PyMongo con Gevent y aquí hay algunas cosas que debe tener en cuenta:
- Instancia solo una
pymongo.Connection
objeto, preferiblemente como una variable global o de nivel de módulo. Esto es importante porqueConnection
tiene dentro de sí una piscina! - Monkey parchea todo, o al menos AMBOS sockets y subprocesos. Debido al uso de subprocesos locales en
Connection
, parchear el socket por sí solo no es suficiente. - Recuerde llamar a
end_request
para devolver la conexión al grupo.
La respuesta a su pregunta es adelante, PyMongo funciona perfectamente con Gevent.