Skip to content

Commit 0334f60

Browse files
author
Mano Marks
authored
Merge pull request dockersamples#56 from docker/revert-54-connection_pooling
Revert "added connection pooling to postgres to prevent client timeouts"
2 parents feacab9 + 9352ed0 commit 0334f60

File tree

2 files changed

+21
-15
lines changed

2 files changed

+21
-15
lines changed

result/package.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
"method-override": "^2.3.5",
1616
"async": "^1.5.0",
1717
"pg": "^4.4.3",
18-
"pg-pool": "1.6.0",
1918
"socket.io": "^1.3.7"
2019
}
2120
}

result/server.js

Lines changed: 21 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,13 @@
11
var express = require('express'),
22
async = require('async'),
33
pg = require("pg"),
4-
Pool = require("pg-pool"),
54
cookieParser = require('cookie-parser'),
6-
bodyParser = require('body-parser'),
5+
bodyParser = require('body-parser'),
76
methodOverride = require('method-override'),
87
app = express(),
98
server = require('http').Server(app),
109
io = require('socket.io')(server);
1110

12-
var config = {
13-
host: 'localhost',
14-
user: 'postgres',
15-
password: '',
16-
database: 'postgres',
17-
max: 10, // max number of clients in pool
18-
idleTimeoutMillis: 1000, // close & remove clients which have been idle > 1 second
19-
};
20-
21-
var client = new Pool(config)
22-
2311
io.set('transports', ['polling']);
2412

2513
var port = process.env.PORT || 4000;
@@ -35,6 +23,14 @@ io.sockets.on('connection', function (socket) {
3523

3624
async.retry(
3725
{times: 1000, interval: 1000},
26+
function(callback) {
27+
pg.connect('postgres://postgres@db/postgres', function(err, client, done) {
28+
if (err) {
29+
console.error("Waiting for db");
30+
}
31+
callback(err, client);
32+
});
33+
},
3834
function(err, client) {
3935
if (err) {
4036
return console.err("Giving up");
@@ -49,13 +45,24 @@ function getVotes(client) {
4945
if (err) {
5046
console.error("Error performing query: " + err);
5147
} else {
52-
var votes = result.rows[0].count
48+
var votes = collectVotesFromResult(result);
5349
io.sockets.emit("scores", JSON.stringify(votes));
5450
}
51+
5552
setTimeout(function() {getVotes(client) }, 1000);
5653
});
5754
}
5855

56+
function collectVotesFromResult(result) {
57+
var votes = {a: 0, b: 0};
58+
59+
result.rows.forEach(function (row) {
60+
votes[row.vote] = parseInt(row.count);
61+
});
62+
63+
return votes;
64+
}
65+
5966
app.use(cookieParser());
6067
app.use(bodyParser());
6168
app.use(methodOverride('X-HTTP-Method-Override'));

0 commit comments

Comments
 (0)