请原谅我的无知,我目前正在学习如何使用Node,而我之前只有PHP背景,并没有接触过Apache或服务器管理。我正在使用Heroku来托管我的Node项目,直接从Cloud9 IDE上推送。
据我所了解,Heroku dyno是一个单个的Web进程,购买额外的dyno将允许您处理更多的流量,因为通过增加dyno,可以增加您一次处理请求的数量。
我知道Node是一个单线程的系统,逐个处理请求,允许您为任何可能需要一些时间处理的事情(如数据库请求、处理文件等)生成子进程。
那么在使用单个dyno生成子进程时,在Heroku中会发生什么呢?这不需要另一个dyno来工作吗?如果Node正在运行一个单独的进程,并且我只有一个进程可用于我的单个dyno中,任何额外的进程也将由该进程处理,这样岂不是会出现问题?
还是我完全理解错了?
var exec = require("child_process").exec;
,然后稍后使用exec
函数执行昂贵的shell操作以演示非阻塞代码。因此,据我所知,在这个例子中,shell操作被推迟到另一个进程中,以便主进程可以继续接受新请求,并在以后接收回调以显示最初请求的响应。 - mibbler