Ich schreibe eine Anwendung mit node.js über die Verwendung von Twitter API. Funktion wie unten:Kontrollaufgabe im Hintergrund ausgeführt 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 wird mehr Zeit in Anspruch nehmen, so will ich es im Hintergrund laufen, Client dagegen tun es nicht darum, nur überprüfen Benutzernamen und Antwort für sie. Aber ich möchte der im Hintergrund ausgeführten Aufgabe folgen, wenn mich Fehler oder Erfolg informieren (Konsole ...). Und wenn viele Anfragen an meinen Router zur gleichen Zeit haben, wird die Leistung nicht beeinträchtigt ...
Ich habe herausgefunden, "Warteschlange" -Modul, aber ich weiß nicht, wie Sie es mit meinem Fall anwenden (get_followers).
Bitte helfen! Danke allen.
Client muss nicht folgen, nur ich im Backend möchte wissen. get_followers Func run Hintergrund und ich werde es durch Konsole oder irgendetwas folgen. –