Node.js 在等待来自Twitter流媒体API的新推文时维护Postgre连接
我正在编写一个应用程序,它使用推特流API捕捉带有特定标签的推特。捕获的每条tweet都必须插入我的数据库,我需要对我的数据库执行另一个查询 这是一个不流行的标签,所以让我们假设每小时有大约400条tweet被捕获。目前,每当我捕捉到一条tweet,处理我的查询,然后关闭连接时,我都会打开一个到数据库的新连接Node.js 在等待来自Twitter流媒体API的新推文时维护Postgre连接,node.js,postgresql,socket.io,Node.js,Postgresql,Socket.io,我正在编写一个应用程序,它使用推特流API捕捉带有特定标签的推特。捕获的每条tweet都必须插入我的数据库,我需要对我的数据库执行另一个查询 这是一个不流行的标签,所以让我们假设每小时有大约400条tweet被捕获。目前,每当我捕捉到一条tweet,处理我的查询,然后关闭连接时,我都会打开一个到数据库的新连接 t.on('tweet', function(tweet) { client.connect(function(error) { if (error) {
t.on('tweet', function(tweet) {
client.connect(function(error) {
if (error) {
console.error('Error while connecting to PostgreSQL DB: ', error);
}
else {
client.query('<MyQuery>',
<MyParameters>,
function (err, result) {
if (err) {
return console.error('error running query', err);
}
else {
client.query('<MyQuery>', function (err, result) {
client.end();
if (err) {
return console.error('error running count query', err);
}
else {
io.emit('infos', {infos: {}});
}
return console.log('Tweet added');
}
});
}
});
}
});
});
你能告诉我什么是让我的应用程序始终收听新推文并将其插入数据库的最佳方式吗?这种方法是每次创建一个新的连接,但我不明白为什么它会崩溃,或者在启动时打开一个连接并在几个星期内保持打开状态,我想这不是一个好的选择?我最后每次都实例化一个全新的客户端,而不是调用connect和end方法
Tweet added
events.js:85
throw er; // Unhandled 'error' event
^
Error: write EPIPE
at exports._errnoException (util.js:746:11)
at WriteWrap.afterWrite (net.js:775:14)
t.on('tweet', function(tweet) {
client = new pg.Client(conString);