You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
254 lines
7.9 KiB
254 lines
7.9 KiB
var mongodb = require("./"); |
|
|
|
// db.createUser( { |
|
// user: "root", |
|
// pwd: "root", |
|
// roles: [ { role: "root", db: "admin" } ] |
|
// }); |
|
|
|
// var uri = "mongodb://muser:mpass@ds021331-a0.mlab.com:21331,ds021331-a1.mlab.com:21331/mdb?replicaSet=rs-ds021331"; |
|
var uri = "mongodb://root:root@localhost:31000,localhost:31001/admin?replicaSet=rs"; |
|
var interval = 50; |
|
var index = 0; |
|
var total = 10000; |
|
|
|
var openThenClose = function(){ |
|
var i = index; |
|
var MongoClient = mongodb.MongoClient; |
|
MongoClient.connect(uri, function(err, db) { |
|
if(!err) { |
|
console.log("open " + i); |
|
var descriptors = db.db('test').collection("some-collection").find(); |
|
descriptors.toArray(function(err, docs){ |
|
db.close(function(){ |
|
console.log("close " + i); |
|
}); |
|
}); |
|
} |
|
}); |
|
}; |
|
|
|
// Run interval total times |
|
var intervalId = setInterval(function(){ |
|
index = index + 1; |
|
|
|
if(index > total) { |
|
return clearInterval(intervalId); |
|
} |
|
|
|
openThenClose(); |
|
}, interval); |
|
|
|
// keep alive |
|
setInterval(function(){ |
|
}, interval * 10) |
|
|
|
// var MongoClient = require('./').MongoClient, |
|
// ReadPreference = require('./').ReadPreference; |
|
// |
|
// var uri = "mongodb://admin:admin@localhost:27017,localhost:27018/admin"; |
|
// var uri = "mongodb://localhost:31000,localhost:31001/test?replicaSet=rs"; |
|
// var uri = "mongodb://muser:mpass@ds015510-a0.mlab.com:15510,ds015510-a1.mlab.com:15510/test?replicaSet=rs-ds015510"; |
|
// var interval = 500; |
|
// var i = 0; |
|
// |
|
// var openThenClose = function(){ |
|
// i = i + 1; |
|
// |
|
// // if(i == 100) { |
|
// if(i == 100) { |
|
// clearInterval(intervalId); |
|
// setInterval(function() { |
|
// console.log('wait for drain'); |
|
// }, interval); |
|
// } |
|
// |
|
// console.log("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! MongoClient.connect") |
|
// MongoClient.connect(uri, { |
|
// // replSet: { |
|
// // socketOptions: { |
|
// // connectTimeoutMS: 2000, socketTimeoutMS: 2000 |
|
// // } |
|
// // } |
|
// }, function(err, db) { |
|
// console.log("open"); |
|
// var descriptors = db.collection("collection").find().setReadPreference(ReadPreference.SECONDARY).batchSize(2); |
|
// descriptors.toArray(function(err, docs){ |
|
// console.log("-------------------------------------------------") |
|
// db.serverConfig.connections().forEach(function(x) { |
|
// console.log("--- " + x.host) |
|
// }) |
|
// // console.log("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! toArray") |
|
// // console.dir(err) |
|
// // console.dir(docs) |
|
// db.close(function(){ |
|
// // console.log("close"); |
|
// console.log("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! close") |
|
// }); |
|
// }); |
|
// }); |
|
// }; |
|
// |
|
// // openThenClose(); |
|
// var intervalId = setInterval(function(){ |
|
// openThenClose(); |
|
// }, interval); |
|
|
|
// var start = null; |
|
// |
|
// console.log("$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ CLOSE 0") |
|
// MongoClient.connect('mongodb://localhost:31000/test?replicaSet=rs', { |
|
// replSet: { |
|
// socketOptions: { |
|
// connectTimeoutMS: 2000, socketTimeoutMS: 2000 |
|
// } |
|
// } |
|
// |
|
// }, function(err, db) { |
|
// console.log(err) |
|
// start = new Date().getTime(); |
|
// console.log("$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ CLOSE 1") |
|
// db.close(); |
|
// }); |
|
// |
|
// process.on('exit', function() { |
|
// console.log("--------- exit :: " + (new Date().getTime() - start)); |
|
// }); |
|
// MongoClient.connect('mongodb://localhost:51000,localhost:51001/test', { |
|
// mongos: { |
|
// poolSize: 100 |
|
// }, |
|
// acceptableLatencyMS: 100 |
|
// }, function(err, db) { |
|
// const collection = db.collection("tempCollection"); |
|
// |
|
// collection.remove({}, (err) => { |
|
// if (err) return console.trace(err); |
|
// |
|
// collection.createIndexes([{key: {number: 1}}], (err) => { |
|
// const documents = []; |
|
// for (var i = 0; i < 30000; i++) { |
|
// documents.push({number: i % 15, prop: '+ftnmrzxEcb+0wCcZjC/YWKP5K0M33FC+FyTaPKxCbyEkFWmXgdU+QW7I6HxDmUPjN8='}) |
|
// } |
|
// |
|
// collection.insertMany(documents, (err) => { |
|
// if (err) return console.trace(err); |
|
// console.log("finish inserting documents..."); |
|
// |
|
// setInterval(function() { |
|
// collection.find({number: 2}).toArray((err, results) => { |
|
// if (err) return console.trace(err); |
|
// console.log("got", results.length, "results"); |
|
// }) |
|
// |
|
// collection.find({number: 2}).toArray((err, results) => { |
|
// if (err) return console.trace(err); |
|
// console.log("got", results.length, "results"); |
|
// }) |
|
// |
|
// collection.find({number: 2}).toArray((err, results) => { |
|
// if (err) return console.trace(err); |
|
// console.log("got", results.length, "results"); |
|
// }) |
|
// |
|
// collection.find({number: 2}).toArray((err, results) => { |
|
// if (err) return console.trace(err); |
|
// console.log("got", results.length, "results"); |
|
// }) |
|
// |
|
// collection.find({number: 2}).toArray((err, results) => { |
|
// if (err) return console.trace(err); |
|
// console.log("got", results.length, "results"); |
|
// }) |
|
// |
|
// collection.find({number: 2}).toArray((err, results) => { |
|
// if (err) return console.trace(err); |
|
// console.log("got", results.length, "results"); |
|
// }) |
|
// |
|
// collection.find({number: 2}).toArray((err, results) => { |
|
// if (err) return console.trace(err); |
|
// console.log("got", results.length, "results"); |
|
// }) |
|
// |
|
// collection.find({number: 2}).toArray((err, results) => { |
|
// if (err) return console.trace(err); |
|
// console.log("got", results.length, "results"); |
|
// }) |
|
// |
|
// collection.find({number: 3000}).toArray((err, results) => { |
|
// if (err) return console.trace(err); |
|
// console.log("got", results.length, "results"); |
|
// }) |
|
// |
|
// collection.find({number: 3000}).toArray((err, results) => { |
|
// if (err) return console.trace(err); |
|
// console.log("got", results.length, "results"); |
|
// }) |
|
// |
|
// collection.find({number: 3000}).toArray((err, results) => { |
|
// if (err) return console.trace(err); |
|
// console.log("got", results.length, "results"); |
|
// }) |
|
// }, 200); |
|
// }) |
|
// }) |
|
// }) |
|
// }); |
|
|
|
// MongoClient.connect('mongodb://localhost:31000,localhost:31001,localhost:31002/test?rs_name=rs&maxPoolSize=100', { |
|
// replSet: { |
|
// socketOptions: { |
|
// connectTimeoutMS: 2000, |
|
// socketTimeoutMS: 2000, |
|
// }, |
|
// // haInterval: 1500 |
|
// } |
|
// }, function(err, db) { |
|
// console.dir(err) |
|
// |
|
// db.serverConfig.on('timeout', function() { |
|
// console.log("----- timeout") |
|
// }) |
|
// |
|
// db.serverConfig.on('close', function() { |
|
// console.log("----- close") |
|
// }) |
|
// MongoClient.connect('mongodb://localhost:31000/test?maxPoolSize=100', function(err, db) { |
|
// console.dir(err) |
|
// |
|
// db.on('reconnect', function() { |
|
// console.log('reconnect', new Error().stack) |
|
// }); |
|
// |
|
// setInterval(function() { |
|
// db.collection('t').insertOne({a:1}, function(e) { |
|
// // console.log("------ insert") |
|
// // console.dir(e) |
|
// }); |
|
// }, 1) |
|
// |
|
// var doit = true; |
|
// |
|
// setInterval(function() { |
|
// if(!doit) return |
|
// console.log("-------------------------------------") |
|
// // // force a reconnect |
|
// // var replset = db.serverConfig.s.replset; |
|
// // var state = replset.s.replState; |
|
// // var connections = state.primary.connections(); |
|
// var connections = db.serverConfig.connections(); |
|
// |
|
// for(var i = 0; i < connections.length; i++) { |
|
// connections[i].connection.write("da12123123213213123233123213123123123123asdacsdcdv ") |
|
// } |
|
// }, 5000); |
|
|
|
// setInterval(function() { |
|
// doit = false; |
|
// |
|
// // db.close(); |
|
// }, 10000); |
|
|
|
// db.close(); |
|
// })
|
|
|