Вы можете отправлять запросы по URL повторно. Что-то вроде этого:
//I don't know how you create nodejs server, I just leave out that part.
//I use request module. sudo npm install --save request
var request = require('request');
var URL = 'https://www.google.com';
var X = 5000; //5 seconds
var sendRequest = function(){
request(URL, function(error, response, body){
if(response.statusCode === 200){//If good
runScript(); //This is the function you write to run sh
}
setTimetout(sendRequest, X);//run the function again no matter what
});
}
sendRequest();
Если вы хотите получить лучший цикл навсегда, я предлагаю вам использовать обещание.
var rp = require('request-promise');
var options = {
uri : 'https://www.google.com',
json : true
};
var X = 5000; //5 seconds, the actual time is 5 seconds plus the time to resolve
var sendRequest_promise = function(){
//return a request promise
return rp(options).then(function(response){
return response;
});
};
var sendRequest = function(){
sendRequest_promise().then(function(response){
if(response.statusCode === 200){
runScript();
}
setTimeout(sendRequest(), X);
});
};
Большого спасибо! Как сделать это циклом forever, который проверяется каждые 5 секунд, если он (все еще) жив? –
С 'X = 30' это будет проверяться каждые 30 миллисекунд, а не 30 секунд. установите 'X = 30000' каждые 30 секунд. – Bradley
@ Брэдли, ты прав. – Jaaaaaaay