【问题标题】:Pause and Resume PostgreSQL Connection on NodeJS在 NodeJS 上暂停和恢复 PostgreSQL 连接
【发布时间】:2016-09-27 13:51:23
【问题描述】:

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

任何反馈将不胜感激

【问题讨论】:

    标签: javascript node.js postgresql asynchronous pg


    【解决方案1】:

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

    您应该做的是熟悉promises,这是您问题的答案。

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2014-05-29
      • 1970-01-01
      • 1970-01-01
      • 2014-05-06
      • 2013-07-19
      • 2015-07-28
      • 2014-12-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多