Node Web服务,执行一个大任务的时候,全世界都停止了?

发布于 2022-09-12 02:46:50 字数 189 浏览 25 评论 0

后台用express做web服务。有一个需求是需要将动态内容生成静态页面。也就是express读取所有的文章,然后将文章写成html。这个过程中,程序没有做任务限制。当生成1万篇文章的过程中。在访问一些需要express处理的动态功能,发现都在等待状态了。是不是这一个生成的任务,把cpu全占了?导致其他的业务都只能等待。那应该怎么解决这个问题呢?### 问题描述

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

白昼 2022-09-19 02:46:50

这种操作建议单独开一个进程来跑,可以试下 child_process

浮云落日 2022-09-19 02:46:50

nodejs是单线程的,所以一个response挂住的话,所有的都需要等
可以使用eggjs,其本身就是多实例/线程的;或者pm2js来启动多个实例/线程
不过如果你开了8个实例,结果每一个都有一个巨型的response挂住了的话,那就只有等了
nodejs适合短快的处理,不适合一个response可能需要等很久的那种

渔村楼浪 2022-09-19 02:46:50

检查有没有同步

阳光的暖冬 2022-09-19 02:46:50

如果你这个大任务不要求实时的话,可以把它分解开,分批次慢慢跑就可以了

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文