Quickie tutaj, że potrzebuje więcej wiedzy domeny na pymongo niż mam teraz:pymongo + gevent: rzuć mi banana i tylko monkey_patch?
są części „prawo” sterownika pymongo napisany w Pythonie dla mnie nazywają gevent monkey_patch() i skutecznie zmieniać pymongo'S zachowanie na R blokujące/w obrębie zielonych "asynchronicznych"?
Jeśli będzie to wymagało trochę więcej pracy nóg nad gevent i pymongo - ale jest to wykonalne - byłbym bardziej niż skłonny poświęcić czas tak długo, jak mogę uzyskać pewne wskazówki dotyczące irc.
Dzięki!
Uwaga: Na małą skalę zapisywanie mongo nie stanowi większego problemu, ponieważ przed odblokowaniem oczekujemy w kolejce "żądania" zapisu. ALE rozmowy z fiorix na temat jego przekręconego asynchronicznego mongo sterownika (https://github.com/fiorix/mongo-async-python-driver), nawet szybkie zapisywanie mongo (żądania) może powodować problemy w aplikacjach asynchronicznych na dużą skalę. (Oczywiście, nie blokujące odczyty mogą powodować problemy od samego początku!)
dziękuję Bernie Hackettowi z grupy mongodb google za tę aktualizację: nadal istnieje problem, że mongo ma górny limit puli połączeń dużo niższy niż liczba greenletów, które większość aplikacji będzie spawnować, jeśli używają mongo w pierwsze miejsce (1000 s greenletów). Niektóre z najnowszych łatek mongodb tutaj https://github.com/mgood/mongo-python-driver są próbą sprawienia, by gevent grał ładnie z łączeniem wątków mongo. Oto kolejny przykład poprawki, która * może * działa: http://code.activestate.com/recipes/577490-mongodb-pool-for-gevent-and-pymongo-packages/. – egbutter
Czy znasz lub znasz przykłady, które pokazują, że PyMongo jest używane z Gevent? –
Oto kolejny przykład łaty, która może działać: https://gist.github.com/1184264 – kkurian