您的位置:首页 > Web前端 > Node.js

Node.js使用exec模拟耗时操作测试非阻塞

2015-12-08 12:37 585 查看
最近看了一本书《Node入门》,其中,如果想要一个请求处理程序中耗时的操作不会阻塞对另一个请求作出立即响应,使用了Node.jschild_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();
});


如果在一个请求响应中加上上面的代码则至少耗时6秒,显然是个阻塞操作,然后可以测试对于其他请求,查看是否立即响应。

此外,查看Node.jsapi

child_process.exec(command[, options], callback)

需要注意的是,如果command的运行时间超过optionstimeout的设定上限就会被kill掉。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  node.js javasript