是否可以从 Python 对 Mongo 进行非阻塞批量插入?

Tho*_*son 5 python nonblocking blocking mongodb

我必须读取来自网络的一些数据,然后将其插入到 MongoDB 中。所有这些都是使用 Python 脚本完成的。有什么方法可以从 Python 对 Mongo 进行非阻塞插入,这样我就可以在 Mongo 服务器处理插入的同时继续处理来自网络的数据?

A. *_*vis 4

是的。有以下三种可能:

  1. 执行未确认的插入:collection.insert(documents, w=0). 一旦数据写入套接字的输出缓冲区,对 insert() 的调用就会返回,并且您的代码不会阻止等待来自 MongoDB 的确认。您的应用程序不会收到任何错误报告。有关写入问题的更多信息请参见此处此处
  2. 将批量文档添加到Queue中,并在单独的线程中从队列中弹出并插入到 MongoDB: 中collection.insert(q.get())
  3. 按照 James Mills 的建议,将您的应用程序移植到 Tornado 和 Motor;这似乎是三者中最需要学习的,而且可能有点矫枉过正。