Quickie qui che ha bisogno di più competenze di dominio sul pymongo che ho in questo momento:pymongo + gevent: mi butti una banana e solo monkey_patch?
sono le parti "giuste" del driver pymongo scritto in python per me di chiamare gevent monkey_patch() e alterare con successo di blocco comportamento r pymongo/w in gevent "asincroni" greenlets?
Se questo richiederà un po 'più di lavoro sulle gambe su gevent e pymongo - ma è fattibile - sarei più che disposto a mettere il tempo finché posso ottenere un po' di orientamento su irc.
Grazie!
Nota: Su piccola scala le scritture di mongo non sono un grosso problema perché ci limitiamo ad accodare una "richiesta" di scrittura prima di sbloccarla. MA parlando a fiorix del suo twistato driver mongo astro (https://github.com/fiorix/mongo-async-python-driver), anche la scrittura veloce (richieste) di mongo può causare problemi nelle applicazioni asincroni su larga scala. (E ovviamente, le letture non bloccanti potrebbero causare problemi fin dall'inizio!)
grazie Bernie Hackett su mongodb google group per questo aggiornamento: c'è ancora il problema che mongo ha un limite superiore sul suo pool di connessioni molto inferiore al numero di greenlet che la maggior parte delle app si genererà se stanno usando mongo nel primo posto (migliaia di greenlet). Alcune delle più recenti patch di mongodb qui https://github.com/mgood/mongo-python-driver sono nel tentativo di far sì che gevent suoni bene con il pool di thread di mongo. Ecco un altro esempio di una patch che * potrebbe * funzionare: http://code.activestate.com/recipes/577490-mongodb-pool-for-gevent-and-pymongo-packages/. – egbutter
Hai o conosci qualche esempio che mostra PyMongo utilizzato con Gevent? –
E qui c'è un altro esempio di una patch che potrebbe funzionare: https://gist.github.com/1184264 – kkurian