【发布时间】:2017-09-01 15:57:37
【问题描述】:
我有一个使用 nodejs、angularjs 和 expressjs 的 Mean 应用程序。
在这里,我从下面的角度控制器调用了我的服务器
Angular Controller.js
$http.post('/sample', $scope.sample).then(function (response) {
--
--
}
在Server.js中如下
app.post('/sample', userController.postsample);
我在上面的代码中的 post sample 中使用 mongodb 进行操作。
在这里,我对如何进行计算部分感到震惊,就像我有一个需要一些时间(假设 1 小时)才能完成的大计算。所以从客户端我会从我的角度控制器触发计算。
我的问题是计算应该分开运行,这样其他页面的其他UI和操作不应该被打断。
我在 nodejs 中看到过该子进程,但我不明白如何从控制器的子进程中触发或执行该子进程,如果它在 app.post 中获得请求,那么是否可以访问其他页面。
编辑:
我计划在 Spawn 中创建一个 child_process,但我在继续上述操作时遇到了另一个问题。
假设应用程序包含 3 个用户,并且有 2 个用户同时访问该应用程序。
我的情况是,如果第一个人触发了 child_process 名称,它为first operation,并且它正在处理中,此时第二个人需要触发它为2nd operation 的进程名称,因为他还需要计算。
这是我的问题
- 如果另一个人启动 spawn 命令会发生什么。如果它挂起或保留在队列中或两者并行执行。
- 如果第二个操作在队列中,那么它将何时开始操作。
- 如果第二个操作在队列中,那么我如何知道某个时间点有多少人在队列中
谁能帮忙解决。
【问题讨论】:
-
我宁愿有两条服务器路由:``` POST /sample GET /sample-end ``` 第一个会做计算,第二个会做: - 计算未完成 - > 返回一条消息说尚未 - 计算未完成 -> 返回结果。您的控制器已经与 UI 分离。不时调用第二条路线。
标签: javascript angularjs node.js mongodb express