最近看了一本书《Node入门》,其中,如果想要一个请求处理程序中耗时的操作不会阻塞对另一个请求作出立即响应,使用了Node.js的child_process模块的一个既简单又实用的非阻塞操作exec()。
下面模拟通过exec()中执行一个耗时操作,来测试非阻塞。
// 这里只写了exec代码,其他部分详见《Node入门》
// 休眠6秒后执行ls -lah
exec("sleep 6 && ls -lah", function(error, stdout, stderr){
response.writeHead(200, {
"content-type":"text/plain"});
response.write(stdout);
response.end();