У меня есть приложение узла beanstalk amazon, которое использует postgres amazon RDS. Для интерфейса узла с postgres я использую node postgres. Код выглядит следующим образом:Узел Модуль Postgres не отвечает
var pg = require('pg'),
done,client;
function DataObject(config,success,error) {
var PG_CONNECT = "postgres://"+config.username+":"+config.password+"@"+
config.server+":"+config.port+"/"+config.database;
self=this;
pg.connect(PG_CONNECT, function(_error, client, done) {
if(_error){ error();}
else
{
self.client = client;
self.done = done;
success();
}
});
}
DataObject.prototype.add_data = function(data,success,error) {
self=this;
this.client.query('INSERT INTO sample (data) VALUES ($1,$2)',
[data], function(_error, result) {
self.done();
success();
});
};
Чтобы использовать его, я создаю мой объект данных, а затем вызвать add_data каждый раз, когда новые данные приходят. В add_data я вызываю «this/self.done()», чтобы освободить соединение обратно в пул. Теперь, когда я повторяю эти запросы, клиентский запрос никогда не возвращается. При каких обстоятельствах это может привести к блокированию/не реагированию на интерфейс базы данных?
Отлично. Мне было не ясно, из документов, что мне нужно открыть соединение каждый раз, когда мне нужно запросить БД. Я думал, что объект-клиент - это пул. –