/
test.js
83 lines (71 loc) · 2.28 KB
/
test.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
var mongodb = require("./lib/mongodb"),
ReplicaSetManager = require('./test/tools/replica_set_manager').ReplicaSetManager;
var options = {
auto_reconnect: true,
poolSize: 4,
socketOptions: { keepAlive: 100, timeout:30000 }
};
var userObjects = [];
// Build user array
for(var i = 0; i < 122; i++) {
userObjects.push({'user_id':i});
}
// var replSet = new mongodb.ReplSetServers([
// new mongodb.Server("mongo-1", 27017, options),
// new mongodb.Server("mongo-2", 27017, options),
// new mongodb.Server("mongo-3", 27017, options)
// ]);
RS = new ReplicaSetManager({retries:120, secondary_count:2, passive_count:1, arbiter_count:1});
RS.startSet(true, function(err, result) {
// Replica configuration
var replSet = new mongodb.ReplSetServers( [
new mongodb.Server( RS.host, RS.ports[1], { auto_reconnect: true } ),
new mongodb.Server( RS.host, RS.ports[0], { auto_reconnect: true } ),
new mongodb.Server( RS.host, RS.ports[2], { auto_reconnect: true } )
],
{rs_name:RS.name}
// {rs_name:RS.name, strategy:'ping'}
// {rs_name:RS.name, strategy:'statistical'}
);
var users;
var db = new mongodb.Db("data", replSet);
db.open(function(err, client){
if(err){
console.log("[%s] %s", new Date, err.stack || err);
return;
}
if(users){
console.log("[%s] Reconnected?!", new Date);
return;
}
client.collection("users", function(err, coll){
console.log("Connected");
coll.insert(userObjects, {safe:true}, function(err, result) {
users = coll;
query();
})
});
// client.collection("users", function(err, users){
// console.log("Connected");
// db.users = users;
// query();
// });
});
function query(){
console.log("[%s] querying all users", new Date);
// setTimeout(query, 70 * 60 * 1000);
setTimeout(query, 32 * 1000);
db.collection('users', function(err, coll) {
if(err){
console.log("[0] :: [%s] %s", new Date, err.stack || err);
}
coll.find().count(function(err, all){
if(err){
console.log("[1] :: [%s] %s", new Date, err.stack || err);
}else{
console.log("[2] :: [%s] found %s users", new Date, all);
}
});
})
}
});