Javascript Meteor-如何同时运行多个服务器进程?
我的Meteor应用程序需要运行13个独立的服务器进程,每个进程都在Javascript Meteor-如何同时运行多个服务器进程?,javascript,node.js,meteor,Javascript,Node.js,Meteor,我的Meteor应用程序需要运行13个独立的服务器进程,每个进程都在setInterval上运行。基本上,我正在ping 13个不同的外部API以获取新数据,并对响应执行计算,并将结果存储在Mongo中。每个过程都类似于以下内容: Meteor.setInterval(function () { try { var response = Meteor.http.call("GET", <url>, { params: <params>,
setInterval
上运行。基本上,我正在ping 13个不同的外部API以获取新数据,并对响应执行计算,并将结果存储在Mongo中。每个过程都类似于以下内容:
Meteor.setInterval(function () {
try {
var response = Meteor.http.call("GET", <url>, {
params: <params>,
timeout: <timeout>
});
}
catch (err) {
console.log(err);
}
if (response.statusCode === 200) {
// handle the response
...
}
}, 10000);
Meteor.setInterval(函数(){
试一试{
var response=Meteor.http.call(“GET”{
参数:,
超时:
});
}
捕捉(错误){
控制台日志(err);
}
如果(response.statusCode==200){
//处理响应
...
}
}, 10000);
不幸的是,Meteor在这些间隔函数中只有三个被打开并并排运行后阻塞了。我开始收到控制台中抛出的套接字挂起
错误和JS分配失败
错误。我认为这与节点的单线程有关。有人知道解决这个问题的办法吗?我一直在努力寻找。。。我真的想知道我是否必须将后端从1个Meteor应用程序和13个进程(似乎没有运行)拆分为13个Meteor应用程序(或Node.js应用程序),每个都有一个进程。谢谢 试试看
好处:
- 作业可以添加到队列中,您可以精确控制它们的成功或失败时间。。。失败的作业可以很容易地重新排队
- 它会根据与同一个集合关联的所有Meteor进程自动进行集群
这样,CPU上的所有内核都得到了利用,而不是Meteor试图在一个处理器上处理所有请求和进程。什么是Meteor.http.call?请参阅上的文档。您已经“仔细查看”,找到了解决此问题的方法,并尝试了解决此问题的方法?Meteor.http.call是Meteor 1.0之前生成http请求的旧方法。谢谢你的链接,我已经更新了我的代码@Kyll我发现关于这个话题的信息很少,因此这篇文章。就尝试而言,我目前正在测试新的
meteohacks:cluster
包,因为它可以让Meteor访问多个内核(),但仅此而已!谢谢我会看一看这个,然后发布我的结果。