Eu usei o PyMongo com o Gevent e aqui estão algumas coisas que você precisa observar:
- Instanciar apenas um
pymongo.Connection
objeto, de preferência como uma variável global ou de nível de módulo. Isso é importante porqueConnection
tem dentro de si uma piscina! - Monkey corrige tudo, ou pelo menos AMBOS o soquete e o encadeamento. Devido ao uso de threads locais em
Connection
, apenas corrigir o soquete não é suficiente. - Lembre-se de ligar para
end_request
para retornar a conexão ao pool.
A resposta para sua pergunta é vá em frente, o PyMongo funciona bem com o Gevent.