暂停和恢复 NodeJS 上的 PostgreSQL 连接



如何成功暂停和恢复 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 模块,但还没有运气。主要目标是在移动到下一个"行"事件或"结束"事件之前完成"行"事件中的每个异步函数。

任何反馈将不胜感激

您以

错误的方式看待它,试图将同步限制应用于异步代码。这是行不通的。即使这样做了,结果也会很糟糕,不可扩展。

相反,你应该做的是熟悉承诺,这是你问题的答案。

主要目标是完成每一个异步函数

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

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

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

最新更新