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.
255 lines
7.9 KiB
255 lines
7.9 KiB
5 years ago
|
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();
|
||
|
// })
|