MongoDBデータベースでストリーミング、一時停止、処理、および再開してデータを処理しようとしています。処理は各文書につき最大2〜3分かかることがあり、それぞれがクラスタ内の作業者によって実行されます。私はmaster
で文書をストリーミングし、workers
に文書を送信して処理されます。問題は、ストリーム(または約10以上のドキュメント)にエラーMongoError: cursor killed or timed out
が20-30分入っていることです。処理時間がこれよりも遅くなる前に、このメソッドを正常に使用しました。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