Skip to content

Instantly share code, notes, and snippets.

@coopernurse
Created March 24, 2013 22:48
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save coopernurse/5233934 to your computer and use it in GitHub Desktop.
Save coopernurse/5233934 to your computer and use it in GitHub Desktop.
var poolModule = require('./lib/generic-pool.js');
var mysql = require('mysql');
var pool = poolModule.Pool({
name: 'mysql',
create: function (callback) {
console.log('create');
var connection = mysql.createConnection({
host: 'localhost',
user: 'test',
password: 'test',
database: 'test'
});
connection.connect(function () {
return callback(null, connection);
});
},
destroy: function (client) { // this is never called. ever
console.log('destroy');
client.destroy();
},
max: 3,
min: 2,
idleTimeoutMillis: 3000, //changed this to 3000
log: true
});
pool.query = function (query, data, callback) {
try {
pool.acquire(function (err, client) {
//called 3 times. never called again.
client.query(query, data, function (err, results, fields) {
try {
pool.release(client); // I've also tried pool.destroy(client);
return callback(err, results);
} catch (err) {
console.log(err)
}
});
});
} catch (err) {
console.log(err);
}
};
console.log("STARTED");
var i, count = 0;
for (i = 0; i < 10; i++) {
pool.query("select 1", [], function(err) {
count += 1;
console.log("finished " + count + " queries");
if (count === 10) {
console.log("STOPPING");
pool.drain();
}
});
}
VERBOSE pool mysql - createResource() - creating obj - count=1 min=2 max=3
create
VERBOSE pool mysql - createResource() - creating obj - count=2 min=2 max=3
create
STARTED
INFO pool mysql - dispense() clients=1 available=0
VERBOSE pool mysql - createResource() - creating obj - count=3 min=2 max=3
create
INFO pool mysql - dispense() clients=2 available=0
INFO pool mysql - dispense() clients=3 available=0
INFO pool mysql - dispense() clients=4 available=0
INFO pool mysql - dispense() clients=5 available=0
INFO pool mysql - dispense() clients=6 available=0
INFO pool mysql - dispense() clients=7 available=0
INFO pool mysql - dispense() clients=8 available=0
INFO pool mysql - dispense() clients=9 available=0
INFO pool mysql - dispense() clients=10 available=0
VERBOSE pool mysql - timeout: 1364165157298
INFO pool mysql - dispense() clients=7 available=1
VERBOSE pool mysql - dispense() - reusing obj
finished 1 queries
VERBOSE pool mysql - timeout: 1364165157299
INFO pool mysql - dispense() clients=6 available=1
VERBOSE pool mysql - dispense() - reusing obj
finished 2 queries
VERBOSE pool mysql - timeout: 1364165157300
INFO pool mysql - dispense() clients=5 available=1
VERBOSE pool mysql - dispense() - reusing obj
finished 3 queries
VERBOSE pool mysql - timeout: 1364165157301
INFO pool mysql - dispense() clients=4 available=1
VERBOSE pool mysql - dispense() - reusing obj
finished 4 queries
VERBOSE pool mysql - timeout: 1364165157302
INFO pool mysql - dispense() clients=3 available=1
VERBOSE pool mysql - dispense() - reusing obj
finished 5 queries
VERBOSE pool mysql - timeout: 1364165157304
INFO pool mysql - dispense() clients=2 available=1
VERBOSE pool mysql - dispense() - reusing obj
finished 6 queries
VERBOSE pool mysql - timeout: 1364165157305
INFO pool mysql - dispense() clients=1 available=1
VERBOSE pool mysql - dispense() - reusing obj
finished 7 queries
VERBOSE pool mysql - timeout: 1364165157305
INFO pool mysql - dispense() clients=0 available=1
finished 8 queries
VERBOSE pool mysql - timeout: 1364165157306
INFO pool mysql - dispense() clients=0 available=2
finished 9 queries
VERBOSE pool mysql - timeout: 1364165157307
INFO pool mysql - dispense() clients=0 available=3
finished 10 queries
STOPPING
INFO pool mysql - draining
VERBOSE pool mysql - availableObjects.length=3
VERBOSE pool mysql - availableObjects.length=3
VERBOSE pool mysql - removeIdle() destroying obj - now:1364165157307 timeout:1364165157305
destroy
VERBOSE pool mysql - availableObjects.length=2
VERBOSE pool mysql - removeIdle() destroying obj - now:1364165158310 timeout:1364165157306
destroy
VERBOSE pool mysql - availableObjects.length=1
VERBOSE pool mysql - removeIdle() destroying obj - now:1364165159312 timeout:1364165157307
destroy
VERBOSE pool mysql - removeIdle() all objects removed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment