Created
March 24, 2013 22:48
-
-
Save coopernurse/5233934 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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(); | |
} | |
}); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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