0
postgres 데이터베이스에 연결하려고합니다. connect()에 1/2 초 이상 걸리는 경우 시간 제한을 설정하고 사용할 수 없다고 가정합니다. 불행히도, 설정을 도달 할 수없는 호스트/포트로 변경하면, ETIMEDOUT을 얻기 전에 약 15 초의 정지 시간이 표시됩니다. 다음 코드 스 니펫 예제에서는 모든 데이터베이스에 연결할 수 있는지 여부에 관계없이 idleTimeoutMillis에 지정된 1ms보다 오래 걸리므로 100 % 시간 초과가 예상됩니다.node-postgres 패키지를 사용하여 pg 데이터베이스에 연결할 시간 제한을 지정 하시겠습니까?
// npm install pg
var pg = require("pg");
var config = {
"host": "myAWS-RDSinstance",
"port": 5432,
"database": "my_db",
"user": "postgres",
"password": "foobar",
"idleTimeoutMillis": 1 // one millisecond = should timeout every time
};
var pool = new pg.Pool(config);
pool.connect(function(err, client, done){
if(err) {
return console.error('error fetching client from pool', err);
}
console.log("connected. attempting query.");
client.query("SELECT COUNT(*) FROM my_table", function(err, result){
done(); // release client to pool
if(err) throw err;
console.log(result.rows[0]);
});
});
이 솔루션과 관련된 문제가 있습니다. 풀 안에 새로운 클라이언트가 생성되면 (config 객체가 pg.Client에 내부적으로 전달되기 때문에) 동일한 스트림 인스턴스를 사용하려고 시도합니다. "/ usr/bin/nodejs [8673] : ../src /stream_base.h:233:void node :: StreamBase :: Consume() : 어설 션'(consumed_) == (false) '이 실패했습니다. – federicojasson