Node.js客户端请求挂起
Node.js client request hangs
我有一个node.js进程,它使用大量的客户端请求从网站上提取信息。我正在使用请求包(https://www.npmjs.com/package/request),因为它说:"它支持HTTPS,默认情况下遵循重定向。"
我的问题是在一段时间后,请求开始挂起。我还没有能够确定这是因为服务器正在返回一个无限的数据流,或者如果其他事情正在发生。我已经设置了超时时间,但是在一些成功的请求之后,其中一些请求最终会卡住并且永远不会完成。
var options = { url: 'some url', timeout: 60000 };
request(options, function (err, response, body) {
// process
});
我的问题是,我可以在使用这个库接收到一定数量的数据后关闭连接吗?我可以阻止请求挂起吗?我是否需要使用http/https库并处理重定向和协议切换自己,以便获得我需要的那种控制?如果有,有标准化的做法吗?
编辑:另外,如果我停止进程并重新启动它,它们会立即恢复并开始工作,所以我认为这与服务器或运行代码的机器无关。
请注意,在request(options, callback)
中,回调将在请求完成时触发,并且没有办法中断请求。
您应该监听data
事件:
var request = require('request')
var stream = request(options);
var len = 0
stream.on('data', function(data) {
// TODO process your data here
// break stream if len > 1000
len += Buffer.byteLength(data)
if (len > 1000) {
stream.abort()
}
})
相关文章:
- Chrome浏览器“;挂起”;同时在循环中执行AJAX请求
- 如何在AngularJS中取消挂起的请求
- IE 10 挂起 XMLHttpRequest 6 分钟,然后响应请求(使用 AngularJS 实现 CRSF)
- 如何查明SignalR客户端上是否有挂起的请求
- 中止Angular中挂起的http请求未中止
- 文件系统读取文件和 xml2js parseString 的挂起请求
- 在 AngularJS 中中止挂起的 ajax 请求
- 节点/快速挂起的请求
- 由挂起导致的 AWS Lambda 函数“进程在完成请求之前退出”
- 如何在javascript中获取所有挂起的http请求
- Node.js 方法不返回任何响应,挂起请求
- 通过 .scope().call() 从 JS 外部调用 Angular 服务会挂起请求
- cakehp3 img挂起请求,image没有't负载
- 事件发射器发射一次,请求挂起
- 使用纯javascript检索挂起的AJAX请求数
- 当通过Ajax发送请求时,如何停止挂起页面
- 如何停止所有活动或挂起的ajax请求
- 等待等效请求挂起
- 异步队列挂起请求
- 在开发工具上发布api端点挂起请求