parsingNode.js中的CSV文件对于性能或阻塞是否有害?

对于Node来说有点新鲜,我已经仔细阅读,注意事件循环,小心不要阻塞。 我有一个用Node.js编写的Web应用程序,它具有允许用户上传CSV文件并将数据保存为MongoDB集合中的文档的function。

我无法从任何人得到一个直接的答案,这是否是一个坏主意。 我担心的是,如果用户上传大文件,则其他用户将无法响应应用程序,而文件的每一行都会保存到Mongo中。

我的担心是否有根据? 这里有一个确定的最佳实践(即使用stream?),如果出现这个问题,你会做什么?

一些背景信息

  • 这些文件平均大小在10kb到100kb之间,但是可能会出现一个更大的8mb文件(8mb是服务器的最大上传大小)。
  • 使用不同的语言是一个select,但只有有一个令人信服的理由这样做
  • 我有一些与应用程序一起运行的Go守护进程,并计划将CSV工作卸载到其中一个或一个新的Ruby进程,如果节点无法处理它。 唯一的问题是在Node应用程序和Go或Ruby进程之间共享用户会话
  • 生产服务器有2个CPU核心可用,所以可能阻止一个核心是可以接受的?

更新:

我正在使用的实现是在Express应用程序中使用stream的fast-csv Node模块,如下所示:

var csv = require('fast-cvs'); csv.fromPath('path/to/file.csv') .on('data', function(data) { // Save data to MongoDB }) .on('end', function() { res.render('my_view', {}); });