nodejs中sleep功能实现暂停几秒的方法-创新互联

我在网上了解了一下nodejs中sleep功能,搜索了很多关于nodejs中sleep功能介绍,下面我来记录一下,有需要了解的朋友可参考。希望此文章对各位有所帮助。

成都创新互联公司 - 电信机房托管,四川服务器租用,成都服务器租用,四川网通托管,绵阳服务器托管,德阳服务器托管,遂宁服务器托管,绵阳服务器托管,四川云主机,成都云主机,西南云主机,电信机房托管,西南服务器托管,四川/成都大带宽,机柜大带宽,四川老牌IDC服务商

一 背景

在使用nodejs爬虫的时候,经常会遇到别人的网站对频率的反爬机制,这个时候如果不做处理程序就会挂掉,重新启动也会继续被屏蔽.这个问题怎么解决呢,我的想法就是程序暂停10分钟或者更长的时间,继续爬取.

二 方法

其实使用setTimeout就可以实现,只是nodejs异步已经很金字塔了,再加一层会更恐怖,所以本文使用nodejs的第三方模块async来实现,async的目的就是让多个异步的程序,按照开发者想要的顺序来执行,代码书写符合同步风格,其实运行还是异步的,也解决了回调金字塔的问题.

async基础使用 :https://www.jb51.net/article/118526.htm

三 正常代码

访问3个网站,百度,优酷,腾讯为例.不暂停的代码.

var async = require('async'); 
var http = require('http'); 
var task = []; 
task.push(function(callback){ 
 console.time('访问3个网站时间统计'); 
 http.get('http://www.baidu.com/', function(res) {  
  console.log("百度访问结果: " + res.statusCode);  
  callback(null); 
 }).on('error', function(e) {  
  console.log("百度访问结果: " + e.message); 
  callback(e); 
 }); 
}) 
 
task.push(function(callback){ 
 http.get('http://www.youku.com/', function(res) {  
  console.log("优酷访问结果: " + res.statusCode); 
  callback(null); 
 }).on('error', function(e) { 
  console.log("优酷访问结果: " + e.message); 
  callback(e); 
 }); 
}) 
 
task.push(function(callback){ 
 http.get('http://www.qq.com/', function(res) {  
  console.log("腾讯访问结果: " + res.statusCode); 
  callback(null); 
 }).on('error', function(e) {  
  console.log("腾讯访问结果: " + e.message); 
  callback(e); 
 }); 
}) 
 
async.waterfall(task, function(err,result){ 
 console.timeEnd('访问3个网站时间统计'); 
 if(err) return console.log(err); 
 console.log('全部访问成功'); 
})

另外有需要云服务器可以了解下创新互联建站www.cdcxhl.com,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。

文章标题:nodejs中sleep功能实现暂停几秒的方法-创新互联
文章分享:https://www.cdcxhl.com/article16/dpeidg.html

成都网站建设公司_创新互联,为您提供网页设计公司网站收录域名注册面包屑导航小程序开发定制开发

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都定制网站网页设计