Skip to content

Instantly share code, notes, and snippets.

@aheckmann
Created June 5, 2012 22:43
Show Gist options
  • Star 8 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save aheckmann/2878607 to your computer and use it in GitHub Desktop.
Save aheckmann/2878607 to your computer and use it in GitHub Desktop.
var mongoose = require('./../mongoose');
var Schema = mongoose.Schema;
var sleep = 1000;
var timer;
var db = mongoose.createConnection();
db.on('error', function () {
// error on startup
console.error('conn error', arguments);
// limit our retries
connect.time += sleep;
if (connect.time > 22000) return console.error('giving up');
db.db.close();
timer = setTimeout(connect, sleep);
});
db.on('open', function () {
clearTimeout(timer);
console.error('opening');
setTimeout(function(){
find(true);
insert();
}, 1000);
});
function connect () {
db.open('localhost', 'testing_10873199');
}
connect.time = 0;
connect();
var schema = new Schema({
name: String
});
var A = db.model('A', schema);
console.error('creating');
var a = new A({ name: '10873199' });
A.create({name:'asdf'},{name:'dddd9'}, function(){});
A.create({name:'asdf2'},{name:'dddd92'}, function(){});
function find (show) {
console.error('finding');
A.find(function (err, docs) {
console.error('found');
if (show)
console.error(err, docs);
else
console.error('%d docs', docs.length);
});
}
var time = 0;
function insert () {
find(false);
console.error('inserting');
var a = new A({ key: 'asdfasdasdf' });
a.save(function(err){
console.error('inserted');
if (err) return console.error('save error', err);
});
time += sleep;
if (time > 20000) return;
insertTimer = setTimeout(insert, sleep);
}
process.on('SIGINT', drop);
function drop () {
db.db.dropDatabase(function () {
console.error('closing');
db.close();
});
process.exit(0);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment