2013-01-08 42 views
-2

我一直在测试Meteor传输文件,但应用运行缓慢,Meteor.apply在发送之前是否缓存了一个队列中的呼叫?流星申请文件传输?

对于那些可能更明确的问题: “是Meteor.apply异步还是使用que缓冲区同步?”

+2

而你的问题是??? – NoNaMe

+0

我没有一个可以读取你的代码的水晶球。 –

+1

对不起!我现在看到了太多词语:“Meteor.apply是异步还是使用que缓冲区进行同步?”代码可以在流星github – RaiX

回答

0

您需要取消阻止该方法。

默认情况下,服务器一次只运行一个给定客户端的方法调用(Meteor.applyMeteor.call)。 (方法要求不同的客户端总是同时运行。)

要允许来自同一客户端的同步方法调用,您需要取消阻止第一个方法调用。在服务器方法实现中调用this.unblock()允许服务器开始在新光纤中处理该客户端的下一个方法。

http://docs.meteor.com/#method_unblock

+0

尝试它并设置等待true/false,在本地stil需要约88ms代码:https://gist.github.com/4486978 – RaiX

+0

从应用调用回调需要约88ms,服务器功能约为1-2ms。我试着产生多个工作者,认为这可能是滞后的,但仍然存在瓶颈 - 在meteor.com 20个线程导致等待3000-5000毫秒公关。应用呼叫 - 传输大约是8kbit/s本地 - 它耗尽我的mac上的cpu和mem - 我做错了什么? – RaiX

+0

我正在更新数据库,在服务器上应用 - 它正在更新ui,因为它应该,但它的数据量很小。 – RaiX