Node.js使用exec模拟耗时操作测试非阻塞
2015-12-08 12:37
585 查看
最近看了一本书《Node入门》,其中,如果想要一个请求处理程序中耗时的操作不会阻塞对另一个请求作出立即响应,使用了Node.js的child_process模块的一个既简单又实用的非阻塞操作exec()。
下面模拟通过exec()中执行一个耗时操作,来测试非阻塞。
如果在一个请求响应中加上上面的代码则至少耗时6秒,显然是个阻塞操作,然后可以测试对于其他请求,查看是否立即响应。
此外,查看Node.js的api:
child_process.exec(command[, options], callback)
需要注意的是,如果command的运行时间超过options中timeout的设定上限就会被kill掉。
下面模拟通过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.js的api:
child_process.exec(command[, options], callback)
需要注意的是,如果command的运行时间超过options中timeout的设定上限就会被kill掉。
相关文章推荐
- 使用 HTTP 上传 G 级的文件之 Node.js 版本
- Node.js压缩web项目中的js,css和图片
- 异步流程控制:7 行代码学会 co 模块
- node.js中的fs.mkdir方法使用说明
- 为什么Node.js会这么火呢?Node.js流行的原因
- 究竟什么是Node.js?Node.js有什么好处?
- node.js中的http.response.removeHeader方法使用说明
- 简单谈谈node.js 版本控制 nvm和 n
- 浅析Node.js查找字符串功能
- Node.js中require的工作原理浅析
- 运行Node.js的IIS扩展iisnode安装配置笔记
- 使用npm发布Node.JS程序包教程
- node.js中的fs.symlinkSync方法使用说明
- Node.js中的流(Stream)介绍
- 使用node.js 获取客户端信息代码分享
- Windows8下搭建Node.js开发环境教程
- Node.js实现的简易网页抓取功能示例
- node.js回调函数之阻塞调用与非阻塞调用
- Node.js中HTTP模块与事件模块详解
- node.js下LDAP查询实例分享