PostgreSQL 9.1 데이터베이스에 "article"테이블이 있고 각 삽입시 채널에 알리는 트리거가 있습니다.LISTEN query timeout with node-postgres?
Socket.io를 사용하여 해당 삽입을 포착하고 연결된 클라이언트에게 알림을 푸시하는 node.js 스크립트를 만들고 싶습니다. 지금까지 채널에 LISTEN하기 위해 node-postgres 모듈을 사용하고 있지만 약 10-15 초 후에 LISTEN 쿼리 시간이 초과되어 삽입을 포착하는 것처럼 보입니다. 시간 초과가 발생하면 새 청취를 쿼리 할 수 있지만 연속을 올바르게 구현하는 방법을 모르겠습니다.
CREATE FUNCTION article_insert_notify() RETURNS trigger AS $$
BEGIN
NOTIFY "article_watcher";
RETURN NULL;
END;
$$ LANGUAGE plpgsql;
트리거 :
CREATE TRIGGER article_insert_trigger
AFTER INSERT ON article
FOR EACH ROW EXECUTE PROCEDURE article_insert_notify();
그리고 Node.js를 코드 :
var pg = require ('pg'),
pgConnection = "postgres://user:[email protected]/db"
pg.connect(pgConnection, function(err, client) {
client.query('LISTEN "article_watcher"');
client.on('notification', function(data) {
console.log(data.payload);
});
});
나는이 풀 타임 LISTEN 보장 할 수 방법 또는 방법
여기 내 PostgreSQL의 통지 절차입니다 청취 쿼리를 재발행하기 위해 타임 아웃을 잡을 수 있습니까? 또는 node-postgres가 아닌 다른 모듈이 더 적절한 도구를 제공 할 수 있습니까?
을 [PG-약속 (https://github.com/vitaly-t/pg-promise) , 설명이있는 완전한 예제 : [LISTEN/NOTIFY] (https://github.com/vitaly-t/pg-promise/wiki/Learn-by-Example#listen--notify) –