p0l*_*ris 4 javascript sleep request wait node.js
请考虑以下情形:
在我的一个cron工作中,我正在请求别人的服务,只允许请求3600秒.API类似于GetPersonForName=string.想想看,我有几个people在我的数据库,我需要时,我可能,我可以,我扫描我的数据库,所有的人来更新自己的信息,并调用此API.例
// mongodb-in-use
People.find({}, function(error, people){
people.forEach(function(person){
var uri = "http://example.com/GetPersonForName=" + person.name
request({
uri : uri
}, function(error, response, body){
// do some processing here
sleep(3600) // need to sleep after every request
})
})
})
Run Code Online (Sandbox Code Playgroud)
不确定睡眠是否是一种想法,但我需要在每次请求后等待3600秒.
您可以使用setTimeout和递归函数来完成此任务:
People.find({}, function(error, people){
var getData = function(index) {
var person = people[index]
var uri = "http://example.com/GetPersonForName=" + person.name
request({
uri : uri
}, function(error, response, body){
// do some processing here
if (index + 1 < people.length) {
setTimeout(function() {
getData(index + 1)
}, 3600)
}
})
}
getData(0)
})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3815 次 |
| 最近记录: |