Задача состоит в том, чтобы на сервере периодически получать информацию от удаленного апи с некоторым интервалом времени. Сам процесс будет стартовать вместе с сервером:
http.createServer(app).listen(PORT, function () {
runForrestRun();
});
function runForrestRun() {
shared.timeoutId = setTimeout(
function () {
console.log("Hello");
},
shared.timeout);
}
При этом, нужно иметь возможность остановить этот процесс, запустить заново или поменять интервал времени через апи, например так (работоспособность первых двух ендпоинтов не проверял)
const shared = require('./shared');
const handler = require('./handler');
// start process
router.post('/api/start', function (request, response) {
runForrestRun();
handler.success(response, 'ok');
});
// stop process
router.post('/api/stop', function (request, response) {
clearTimeout(shared.timeoutId);
handler.success(response, 'ok');
});
// update timeout interval
router.post('/api/timeout', function (request, response) {
shared.timeout = request.body.timeout;
handler.success(response, 'ok');
});
// get current timeout interval
router.get('/api/timeout', function (request, response) {
handler.success(response, '', shared.timeout);
});
Другая подобная задача - оповещение пользователей о чем либо по почте или на сайте (хотя конкретно этот случай не о почте) Что лучше setInterval или setTimeout в таких случаях? Или вообще есть другие более подходящие технологии?