express 请求阻塞问题

2015-05-27 21:02:41 +08:00
 Mirachael

route1: /getList, needtime : 2s,
route2: /getDataFromSomeWebsite, needtime : 3min

这种情况下先访问/getDataFromSomeWebsite的情况下(实际上是一个爬虫),在3min中内方位/getList,页面会卡死,直到route2有结果返回。
查了下用child_process开启子进程,但是具体怎么做不清楚,有同僚碰到过类似情况吗?
而且在fork(‘child.js’)子进程中用mongoose.find()导致进程返回不出结果?

3992 次点击
所在节点    Node.js
3 条回复
vietor
2015-05-27 21:43:49 +08:00
本来就只有一个处理线程,CPU秘籍肯定阻塞的。
Mirana
2015-05-27 21:56:17 +08:00
可以用process.nextTick()
faceair
2015-05-27 22:39:24 +08:00
爬虫要用异步方法写,用 request 库应该是不会卡死的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/194223

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX