Twitter API를 사용하는 것에 대해 node.js로 애플리케이션을 작성하고 있습니다. 다음과 같은 기능 :백그라운드에서 실행되는 제어 작업 node.js
app.get('/api/get_follower', function(req, res){
var username = req.query.username
var client = new twitter({
consumer_key: global.twitter_consumer_key,
consumer_secret: global.twitter_consumer_secret,
access_token_key: global.token_access,
access_token_secret: global.token_secret
});
check_username(username)
.then(function(data){
res.status(200).end()
// this code below will run in background.
// I want to follow it and it will throw to me if error or inform me when success
// and if server will be crashed, it will run continue from that time (if can)
return get_followers(client, -1, [])
}, function(err){
res.statusMessage = 'user not found'
res.status(404).end()
})
})
var check_username = function(req, res){
return new Promise(function(resolve, reject){
client.get(link, function(err, data){
if(err){
reject(err)
}else{
resolve(data)
}
})
})
}
var get_followers = function(client, cursor, data){
return new Promise(function(resolve, reject){
client.get(link, function(err, _data){
if(err){
setTimeout(function() {
get_followers(client, cursor, data)
}, 30000);
}else{
var data = data.concat(_data.users)
if(_data.next_cursor != 0){
setTimeout(function() {
get_followers(client, _data.next_cursor, data)
}, 30000);
}else{
resolve(data)
}
}
})
})
}
Func을의 get_followers를 완료하는 데 더 많은 시간이 걸릴 것입니다, 그래서 백그라운드에서 실행하려면, 클라이언트는 그들을 위해 사용자 이름과 응답을 확인, 그것에 대해 걱정하지 않는다. 그러나 실패 나 성공이 나에게 알리면 (콘솔 ...) 백그라운드에서 실행되는 작업을 수행하고 싶습니다. 그리고 동시에 라우터에 많은 요청을하는 경우 성능에 영향을주지 않습니다 ...
"대기열"모듈을 찾았지만 내 경우 (get_followers)와 함께 적용하는 방법을 모르겠습니다.
도와주세요! 모두에게 감사드립니다.
클라이언트는 그것을 따를 필요가 없으며, 단지 백엔드에서 나를 알고 싶습니다. get_followers func는 백그라운드를 실행하고 나는 콘솔이나 다른 것으로 그것을 따라 할 것입니다 .. –