【发布时间】:2015-04-27 13:13:21
【问题描述】:
带有 Mongo DB 的 NodeJS 服务器 - 一个功能将从 DB 生成报告 JSON 文件,这可能需要一段时间(60 秒以上 - 必须处理数十万个条目)。
我们希望将其作为后台任务运行。如果用户决定更改参数并重新构建它,我们需要能够启动报表构建过程、监控它并中止它。
节点最简单的方法是什么?不想进入单独的工作服务器处理作业、消息队列等领域 - 我们需要将其保持在同一个盒子上并且实现相当简单。
1) 以异步方法启动构建,并返回给用户,socket.io 报告进度?
2) 为构建脚本分离一个子进程?
3) 使用类似https://www.npmjs.com/package/webworker-threads?
通过我研究过的几种方法,我陷入了相同的两个领域;
1) 如何监控进度? 2) 如果用户重新提交数据,如何中止现有的构建过程?
任何指针将不胜感激......
【问题讨论】:
标签: node.js multithreading mongodb child-process long-running-processes