跳到主要内容
CNode

nodejs里有大的数据处理怎么办?

问答
CCN-Sean发布于 11 年前最后回复 8 年前
28130620

用nodejs做了一个excel导入功能,但是用户导入的数据有多有少,有人导入了几十万行的excel,node处理慢了点就造成了阻塞。有优化方案吗?我服务器是单核的。。。

查看回复

回复 (28)

S
sk-blog#288 年前

流读取真的可行? QQ图片20180830083542.png @i5ting js-xlsx

F
flyingcodes#2711 年前
引用 highsea@flyingcodes 感谢真正的后端工程师 莅临 node 社区,大家热烈欢迎一下 stream 不错 https://github.com/substack/stream handboo...

@highsea 不用酸我,我前端,伪后端,后端,数据持久层都做,我知道在哪些地方适合用哪些技术,而不是一味只用一种技术。每种技术都有优点和缺点,我只在特定场合选择最适合的

Y
yakczh#2611 年前
引用 cnlile@yakczh 为啥不直接nodejs 处理,调用自身C++模块处理不好吗?

@cnlile 因为nodejs挂了,所有的数据都挂了 现场环境都丢失了 传给java的话,nodejs挂了, java不会挂 java比nodejs稳定得多

C
cnlile#2511 年前
引用 yakczh1 写c++计算的模块 2 通过消息队列扔给java

@yakczh 为啥不直接nodejs 处理,调用自身C++模块处理不好吗?

H
highsea#2411 年前
引用 flyingcodesnode.js不能处理需要cpu运算的需求,交给真正的后端

@flyingcodes 感谢真正的后端工程师 莅临 node 社区,大家热烈欢迎一下

stream 不错~ https://github.com/substack/stream-handbook

F
flyingcodes#2311 年前
引用 xiaxiaokang@flyingcodes 后端的定义是什么呢?

@xiaxiaokang 连后端是什么都不知道,难怪不知道什么是伪后端

M
mzTeamMeatMan#2211 年前

每行一个异步处理

L
lian1925#2111 年前

楼主描述的场景是:上传大文件,伴随高并发的应用场景。 对这种情况,真正的瓶颈在于单核的单节点服务器已接近临界值了,建议楼主提升服务器性能,采用服务节点集群方式处理。

X
xiaxiaokang#2011 年前

@flyingcodes 后端的定义是什么呢?

Y
yakczh#1911 年前

1 写c++计算的模块 2 通过消息队列扔给java

F
flyingcodes#1811 年前
引用 xiaxiaokang@flyingcodes 第一听说还有伪后端!

@xiaxiaokang 那只能说明你孤陋寡闻了

A
airyland#1711 年前

异步处理。先上传文件,进入任务队列,用另一个进程来处理。

X
xiaxiaokang#1611 年前

@flyingcodes 第一听说还有伪后端!

F
flyingcodes#1511 年前
引用 i5ting@flyingcodes 什么叫真正的后端?

@i5ting 伪后端后面的后端就叫真正的后端

F
flyingcodes#1311 年前
引用 i5ting@flyingcodes 这是哪个语言实现都会遇到的,大文件读写没有什么更好的办法, 朴大@JacksonTian 给的这样的方法, 不然,你给一个更好的吧

@i5ting 我早说了,交给真正的后端处理,使用node.js就要利用node。js的优势,避免陷入坑里

I
i5ting#1211 年前
引用 flyingcodes@i5ting 呵呵,并发量少或者文件比较小可以用stream,否则到达一定的并发量或者文件比较大,就会出现lz所看到的阻塞,这就是node.js的本质,不管如何优化,也就是量变而已,根本不会...

@flyingcodes 这是哪个语言实现都会遇到的,大文件读写没有什么更好的办法, 朴大@JacksonTian 给的这样的方法,

不然,你给一个更好的吧

F
flyingcodes#1111 年前
引用 i5ting@flyingcodes 别乱说

@i5ting 呵呵,并发量少或者文件比较小可以用stream,否则到达一定的并发量或者文件比较大,就会出现lz所看到的阻塞,这就是node.js的本质,不管如何优化,也就是量变而已,根本不会发生质变

J
JacksonTian#1011 年前

这种做成流式处理吧。或者离线处理。

B
bendise#911 年前

才几十万行就不行了?怀疑你的代码 自豪地采用 CNodeJS ionic

Y
youyudehexie#811 年前

node处理是怎么导致阻塞的,你是用 fs 里面同步的api?还是异步?

C
CN-Sean#611 年前
引用 i5tingstream

@i5ting 我用了xlsx这个npm做的解析成json。

C
CN-Sean#511 年前
引用 CarlosRenexcel如何导入的?

@CarlosRen 用了一个npm,把xml解析成json的。

A
AntSworD#411 年前

stream

C
CarlosRen#311 年前

excel如何导入的?

F
flyingcodes#211 年前

node.js不能处理需要cpu运算的需求,交给真正的后端

I
i5ting#111 年前

stream

参与回复

登录后即可参与回复。登录