#node.js #out-of-memory #connection-pooling #sockjs #node-postgres
#node.js #нехватка памяти #объединение в пул соединений #sockjs #узел-postgres
Вопрос:
я довольно новичок в node.js и при использовании библиотеки node_postgres. Я использовал sockjs и Primus в качестве транспорта для прототипа моего веб-сервера. Я использовал PM2 в качестве инструмента мониторинга на своем сервере и заметил, что использование оперативной памяти увеличивается при запросе postgres. Я использую node_postgres, встроенный в пул соединений для базы данных. Отключение клиента от сервера не приводит к удалению памяти, и это только усугубляет ситуацию, чем больше клиентов я подключаю и чем больше запросов выполняю. Как мне очистить эту память, когда клиенты отключаются от моего сервера? Я был бы признателен за любые предложения от вас, ребята! вот мой код:
var Static = require('node-static');
var http = require('http');
var file = new Static.Server('./public');
var PORT = 8083;
var pg = require('pg');
var conString = "postgres://username:password@localhost/database";
/*********** Primus Plugins ***************/
var Primus = require('primus');
var Emitter = require('primus-emitter');
var server = http.createServer(function (request, response) {
request.addListener('end', function () {
file.serve(request, response);
}).resume();
}).listen(PORT);
// primus instance
var primus = new Primus(server, { transformer: 'sockjs', parser: 'JSON' });
// add emitter to Primus
primus.use('emitter', Emitter);
primus.on('connection', function (spark) {
console.log("User: " spark.id " connected");
spark.on('test', function (data){
pg.connect(conString, function(err, client, done) {
if(err) {
return console.error('error fetching client from pool', err);
}
client.query('SELECT * from tbldata where dev_id = ' data, function(err, result) {
if(err) {
return console.error('error running query', err);
}
console.log(result);
spark.send('done_query', result);
//call `done()` to release the client back to the pool
done();
});
});
});
});
primus.save(__dirname '/primus.js');
Комментарии:
1. Есть ли на это какой-либо ответ?