我想通过流式处理,暂停,处理和恢复来处理MongoDB数据库中的数据。每个文档的处理过程可能需要2-3分钟,每个文档都由集群中的工作人员完成。我在master
中传输文档,然后将文档发送到workers
进行处理。问题是我正在错误MongoError: cursor killed or timed out
20-30分钟进入流(或约10 +文件)。在处理时间低于此值之前,我已成功使用此方法。MongoError:光标死亡或超时
配置: [email protected]
,mongodb version 3.0.5
,node 0.10
MongoClient.connect(config.mongodb, function(err, db) {
if (err) helper.logError(err)
var collection = db.collection('collectionName');
stream = collection.find(condition).stream();
stream.on("data", function(doc) {
stream.pause();
doSomeProcessing().then(function(){
stream.resume()
});
});
});
嗨,你有没有解决你的问题? – DaTebe
不,我重新设计我如何查询它。 – harinsa