私は、PostgreSQL 9.1データベースに "article"テーブルがあり、各挿入物のチャンネルに通知するトリガを持っています。node-postgresでLISTENクエリのタイムアウトが発生しましたか?
これらの挿入をキャッチし、Socket.ioを使用して接続されたクライアントに通知をプッシュするnode.jsスクリプトを作成したいとします。これまではnode-postgresモジュールを使ってチャンネルにLISTENを行っていましたが、LISTENクエリが約10-15秒後にタイムアウトして挿入を捕捉するのを止めるようです。タイムアウトが発生したときに新しいリッスンを照会できましたが、継続を正しく実装する方法がわかりません。
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以外のモジュールがもっと適切なツールを提供しているかもしれませんか?
、説明付きの完全な例:[LISTEN/NOTIFY](https://github.com/vitaly-t/pg-promise/wiki/Learn-by-Example#listen--notify) –