用nodejs做了一个excel导入功能,但是用户导入的数据有多有少,有人导入了几十万行的excel,node处理慢了点就造成了阻塞。有优化方案吗?我服务器是单核的。。。
stream
excel如何导入的?
stream
@CarlosRen 用了一个npm,把xml解析成json的。
@i5ting 我用了xlsx这个npm做的解析成json。
@flyingcodes 别乱说
node处理是怎么导致阻塞的,你是用 fs 里面同步的api?还是异步?
才几十万行就不行了?怀疑你的代码 自豪地采用 CNodeJS ionic
这种做成流式处理吧。或者离线处理。
@flyingcodes 这是哪个语言实现都会遇到的,大文件读写没有什么更好的办法, 朴大@JacksonTian 给的这样的方法,
不然,你给一个更好的吧
@flyingcodes 什么叫真正的后端?
@flyingcodes 第一听说还有伪后端!
异步处理。先上传文件,进入任务队列,用另一个进程来处理。
1 写c++计算的模块 2 通过消息队列扔给java
@flyingcodes 后端的定义是什么呢?
楼主描述的场景是:上传大文件,伴随高并发的应用场景。 对这种情况,真正的瓶颈在于单核的单节点服务器已接近临界值了,建议楼主提升服务器性能,采用服务节点集群方式处理。
每行一个异步处理
@flyingcodes 感谢真正的后端工程师 莅临 node 社区,大家热烈欢迎一下
stream 不错~ https://github.com/substack/stream-handbook
@yakczh 为啥不直接nodejs 处理,调用自身C++模块处理不好吗?
@cnlile 因为nodejs挂了,所有的数据都挂了 现场环境都丢失了 传给java的话,nodejs挂了, java不会挂 java比nodejs稳定得多