作者热门文章
- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
这里需要比我现在更多的 pymongo 领域专业知识:
pymongo 驱动程序的“正确”部分是用 python 编写的,我可以调用 gevent monkey_patch() 并成功地改变 pymongo 在 gevent“异步”greenlets 中的 r/w 阻塞行为吗?
如果这需要在 gevent 和 pymongo 上做更多的工作——但这是可行的——只要我能在 irc 上获得一些指导,我就非常愿意投入时间。
谢谢!
注意:在小规模 mongo 写入不是一个大问题,因为我们只是在解除阻塞之前排队写入“请求”。但是与 fiorix 谈论他扭曲的异步 mongo 驱动程序(https://github.com/fiorix/mongo-async-python-driver),即使是 mongo 的快速写入(请求)也可能导致大规模异步应用程序出现问题。 (当然,非阻塞读取可能从一开始就引起问题!)
最佳答案
我已将 PyMongo 与 Gevent 一起使用,以下是您需要注意的一些事项:
pymongo.Connection
对象,最好作为全局或模块级变量。这很重要,因为 Connection
内部有一个池!Connection
中使用了线程局部变量,仅修补套接字是不够的。end_request
将连接返回到池中。你的问题的答案是继续,PyMongo 与 Gevent 配合得很好。
关于python - pymongo + gevent : throw me a banana and just monkey_patch?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7166998/
我是一名优秀的程序员,十分优秀!