我正在使用request-sync从特定网站API获取数据,如下所示:
let req = request('GET', LINK, {
'headers': {
'Accept' : ''
'X-DevTools-Emulate-Network-Conditions-Client-Id' : '',
'X-FirePHP-Version' : '',
'Upgrade-Insecure-Requests' : '',
'User-Agent' : '',
'Referer' : '',
'Accept-Encoding' : '',
'Accept-Language' : '',
'Cookie' : ''
}
});
我担心所有者阻止我的API或起诉我,如果他们释放了我正在做的请求数量。
所以,我想每分钟阻止50个请求。那有可能吗?怎么会这样?没有一个包可以帮我解决这个问题吗?
感谢。
答案 0 :(得分:0)
您可以使用计时器window.setInterval
来实现相同的目标。阅读here。
请参阅下面我为您创建的相同示例。在这里,我每30秒最多进行15次虚拟服务器调用,一旦达到15的threashold,服务器调用将停止。然后,一旦30秒过去,服务器呼叫将恢复。
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
var count = 0;
function makeServerCall(){
console.log('making server call ... ' + count);
count++;
}
function checkAndMakeServerCall(){
if(count <= 15){ //Set how many calls you want to make within time set using setInterval(function(){ count = 0; }, 30000);
makeServerCall();
} else{
console.log('not making server call ...');
}
}
setInterval(function(){ checkAndMakeServerCall() }, 1000);
setInterval(function(){ count = 0; }, 30000); //Define time... 30000 means 30 seconds ...
</script>
</head>
<body>
</body>
</html>
答案 1 :(得分:0)