Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Meteor-如何同时运行多个服务器进程?_Javascript_Node.js_Meteor - Fatal编程技术网

Javascript Meteor-如何同时运行多个服务器进程?

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>,

我的Meteor应用程序需要运行13个独立的服务器进程,每个进程都在
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进程自动进行集群


状态更新:问题的很大一部分与节点是单线程有关。我将这个单一的Meteor应用程序拆分为13个微服务Meteor应用程序,全部连接到同一个MongoDB副本集,从而解决了CPU限制问题


这样,CPU上的所有内核都得到了利用,而不是Meteor试图在一个处理器上处理所有请求和进程。

什么是Meteor.http.call?请参阅上的文档。您已经“仔细查看”,找到了解决此问题的方法,并尝试了解决此问题的方法?Meteor.http.call是Meteor 1.0之前生成http请求的旧方法。谢谢你的链接,我已经更新了我的代码@Kyll我发现关于这个话题的信息很少,因此这篇文章。就尝试而言,我目前正在测试新的
meteohacks:cluster
包,因为它可以让Meteor访问多个内核(),但仅此而已!谢谢我会看一看这个,然后发布我的结果。