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はバックグラウンドで実行され、コンソールなどでそれをフォローします。 –