Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/479.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 我可以在node.js express应用程序中使用群集吗?对于特定的请求,仍然可以生成子进程工作者_Javascript_Node.js_Mongodb_Express_Multiprocessing - Fatal编程技术网

Javascript 我可以在node.js express应用程序中使用群集吗?对于特定的请求,仍然可以生成子进程工作者

Javascript 我可以在node.js express应用程序中使用群集吗?对于特定的请求,仍然可以生成子进程工作者,javascript,node.js,mongodb,express,multiprocessing,Javascript,Node.js,Mongodb,Express,Multiprocessing,编辑: 我在简化我的问题,因为虽然他的回答是有用的信息,但它与我试图理解的使用多个节点进程的内容是相切的 问题的关键是:如果应用程序使用的是已经在运行的子进程,我该如何或可以如何管理手动生成的子进程 以下原始问题 我有一个express.js应用程序,主要功能是接受http请求并通过一些MongoDB查询提供http响应。为了提高性能,应用程序在应用程序启动时使用,并作为工作进程在可用CPU上生成 我现在有一些可能长期运行的特定查询—连接到外部服务和API 是否值得将这些特定查询派生给他们自己

编辑: 我在简化我的问题,因为虽然他的回答是有用的信息,但它与我试图理解的使用多个节点进程的内容是相切的

问题的关键是:如果应用程序使用的是已经在运行的子进程,我该如何或可以如何管理手动生成的子进程

以下原始问题


我有一个express.js应用程序,主要功能是接受http请求并通过一些MongoDB查询提供http响应。为了提高性能,应用程序在应用程序启动时使用,并作为工作进程在可用CPU上生成

我现在有一些可能长期运行的特定查询—连接到外部服务和API

  • 是否值得将这些特定查询派生给他们自己的工作人员(使用)

  • 如果是的话,现有集群的使用将如何影响这一点

  • 或者(或者也可以)如果我使用类似或的东西设置了一个持久工作队列,并且假设我使用的是集群,那么我如何控制哪个进程处理该队列


  • 根据node.js JavaScript处理中完成的工作,向某些分叉工作人员生成长时间运行的查询可能不会产生任何好处

    Node.js在后台的专用线程(池)中执行所有IO处理(查询是IO)。因此,在数据库系统处理查询时,不会阻止node.js JavaScript进程。 如果您正在使用JavaScript进行大量查询结果后处理,那么它可能会带来好处,因为在使用JavaScript代码进行后处理时,JavaScript处理器会被阻塞


    使用作业队列异步执行这些查询有很多好处,因为您可以在同一个过程中开始使用作业处理器进行开发,并且以后可以通过将作业处理器部署到环境中的专用计算机来轻松扩展。但是:使用这种方法时要小心,因为查询结果太大可能会降低作业队列的速度。

    因此,生成子工作进程将适合CPU密集型查询,但不一定是长时间运行到另一个服务的IO?在集群环境下,我如何管理CPU密集型进程的产生?