【问题标题】:Avoiding wait time on queries避免查询等待时间
【发布时间】:2015-03-07 21:21:41
【问题描述】:

当我调用一个函数时,我在我的流星应用程序上注意到了这种模式,比如 recordInput:

wait on method : recordInput - 2647 ms
wait on method : recordInput - 1121 ms
wait on method : recordInput - 1714 ms
wait on method : recordInput - 820 ms

所以在我看来,这个被异步调用的函数在被多个用户调用时正在堆积。

我在 heroku 上运行应用程序,所以如果我想减少等待时间,我会增加 dyno 的大小或 dyno 的数量,还是这些更改都不会因为流星/节点而有所不同架构?

【问题讨论】:

  • wait on method : recordInput... 输出来自哪里?
  • 那来自 kadira

标签: node.js heroku meteor


【解决方案1】:

Meteor 为特定用户堆叠方法,我不确定您的设置是否准确,但 Meteor 方法是按特定顺序为特定连接设置的,在调用前一个方法之前不会调用下一个方法,并且返回结果。

这当然意味着多个连接可以同步运行,这只适用于同一个连接。

如果您希望每个方法都在堆栈上等待完成的任何先前方法都触发,请使用以下命令开始您的服务器端方法:

Meteor.methods({

    your_method_name: function() {

        this.unblock();

        ....

    }
});

[1] this.unblock(): http://docs.meteor.com/#/full/method_unblock 上的 Meteor 文档

【讨论】:

  • 谢谢。因此,这是由同一用户多次触发该功能引起的。如果队列与同一个用户有关,解除阻塞有什么好处吗?
  • 是的,如果您使用 this.unblock,则该方法会忽略堆栈,因此您可以更快地获得结果,但这取决于您的应用程序,因为它们可以按调用顺序返回
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-02-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-21
  • 2014-12-04
  • 2021-06-21
相关资源
最近更新 更多