在NodeJS上暂停和恢复PostgreSQL连接

时间:2016-05-29 18:57:28

标签: javascript node.js postgresql asynchronous pg

如何为PostgreSQL / node.js成功暂停和恢复数据库连接?这就是我想要实现的目标:

query
.on('error', function(err) {
    // Handle error
})
.on('row', function(row) {
    // Process a row but first pause connection so it wont keep getting into 'row' event and finish processing this row first
    pgconnection.pause();

    async.series([
      functions()
    ])

    pgconnection.resume();
})
.on('end', function() {
    //Rows have been received and finish
});

现在我一直在探索pg和pg-query-stream模块,但还没有运气。主要目标是在“行”事件中完成每个单独的异步函数,然后再转移到下一个“行”事件或“结束”事件。

非常感谢任何反馈

1 个答案:

答案 0 :(得分:0)

您正在以错误的方式查看它,尝试对异步代码应用同步限制。它不会起作用。即使它确实如此,结果也会很糟糕,不可扩展。

你应该做些什么,熟悉promises,这是你问题的答案。

  

主要目标是完成每一个异步功能

标准Promise.all就是这样做的。

  

我一直在探索pgpg-query-stream模块,但还没有运气

pg是一个异步模块,pg-query-stream应该尽可能快地工作,因为它是一个流。你不阻止流,这不是他们的工作方式。如果您的代码逻辑无法处理从流中分页数据的方式,那么您的代码就会出现问题,而不是流提供程序。然后,再次学习承诺以及如何正确使用它们。