He usado PyMongo con Gevent y aquí hay algunas cosas que debe tener en cuenta:
- Instancia solo una
pymongo.Connectionobjeto, preferiblemente como una variable global o de nivel de módulo. Esto es importante porqueConnectiontiene 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_requestpara devolver la conexión al grupo.
La respuesta a su pregunta es adelante, PyMongo funciona perfectamente con Gevent.